Merge Official Source
This commit is contained in:
commit
d262e7f598
143
include/meson.mk
Normal file
143
include/meson.mk
Normal file
@ -0,0 +1,143 @@
|
||||
# To build your package using meson:
|
||||
#
|
||||
# include $(INCLUDE_DIR)/meson.mk
|
||||
# MESON_ARGS+=-Dfoo -Dbar=baz
|
||||
#
|
||||
# To pass additional environment variables to meson:
|
||||
#
|
||||
# MESON_VARS+=FOO=bar
|
||||
#
|
||||
# Default configure/compile/install targets are provided, but can be
|
||||
# overwritten if required:
|
||||
#
|
||||
# define Build/Configure
|
||||
# $(call Build/Configure/Meson)
|
||||
# ...
|
||||
# endef
|
||||
#
|
||||
# same for Build/Compile and Build/Install
|
||||
#
|
||||
# Host packages are built in the same fashion, just use these vars instead:
|
||||
#
|
||||
# HOST_BUILD_DEPENDS:=meson/host
|
||||
# MESON_HOST_ARGS+=-Dfoo -Dbar=baz
|
||||
# MESON_HOST_VARS+=FOO=bar
|
||||
|
||||
MESON_DIR:=$(STAGING_DIR_HOST)/lib/meson
|
||||
|
||||
MESON_HOST_BUILD_DIR:=$(HOST_BUILD_DIR)/openwrt-build
|
||||
MESON_HOST_VARS:=
|
||||
MESON_HOST_ARGS:=
|
||||
|
||||
MESON_BUILD_DIR:=$(PKG_BUILD_DIR)/openwrt-build
|
||||
MESON_VARS:=
|
||||
MESON_ARGS:=
|
||||
|
||||
ifneq ($(findstring i386,$(CONFIG_ARCH)),)
|
||||
MESON_ARCH:="x86"
|
||||
else ifneq ($(findstring powerpc64,$(CONFIG_ARCH)),)
|
||||
MESON_ARCH:="ppc64"
|
||||
else ifneq ($(findstring powerpc,$(CONFIG_ARCH)),)
|
||||
MESON_ARCH:="ppc"
|
||||
else ifneq ($(findstring mips64el,$(CONFIG_ARCH)),)
|
||||
MESON_ARCH:="mips64"
|
||||
else ifneq ($(findstring mipsel,$(CONFIG_ARCH)),)
|
||||
MESON_ARCH:="mips"
|
||||
else ifneq ($(findstring armeb,$(CONFIG_ARCH)),)
|
||||
MESON_ARCH:="arm"
|
||||
else
|
||||
MESON_ARCH:=$(CONFIG_ARCH)
|
||||
endif
|
||||
|
||||
# this is undefined for just x64_64
|
||||
ifeq ($(origin CPU_TYPE),undefined)
|
||||
MESON_CPU:="generic"
|
||||
else
|
||||
MESON_CPU:="$(CPU_TYPE)$(if $(CPU_SUBTYPE),+$(CPU_SUBTYPE))"
|
||||
endif
|
||||
|
||||
define Meson
|
||||
$(2) $(STAGING_DIR_HOST)/bin/$(PYTHON) $(MESON_DIR)/meson.py $(1)
|
||||
endef
|
||||
|
||||
define Meson/CreateNativeFile
|
||||
$(STAGING_DIR_HOST)/bin/sed \
|
||||
-e "s|@CC@|$(foreach BIN,$(HOSTCC),'$(BIN)',)|" \
|
||||
-e "s|@CXX@|$(foreach BIN,$(HOSTCXX),'$(BIN)',)|" \
|
||||
-e "s|@PKGCONFIG@|$(PKG_CONFIG)|" \
|
||||
-e "s|@CFLAGS@|$(foreach FLAG,$(HOST_CFLAGS) $(HOST_CPPFLAGS),'$(FLAG)',)|" \
|
||||
-e "s|@CXXFLAGS@|$(foreach FLAG,$(HOST_CXXFLAGS) $(HOST_CPPFLAGS),'$(FLAG)',)|" \
|
||||
-e "s|@LDFLAGS@|$(foreach FLAG,$(HOST_LDFLAGS),'$(FLAG)',)|" \
|
||||
-e "s|@PREFIX@|$(HOST_BUILD_PREFIX)|" \
|
||||
< $(MESON_DIR)/openwrt-native.txt.in \
|
||||
> $(1)
|
||||
endef
|
||||
|
||||
define Meson/CreateCrossFile
|
||||
$(STAGING_DIR_HOST)/bin/sed \
|
||||
-e "s|@CC@|$(foreach BIN,$(TARGET_CC),'$(BIN)',)|" \
|
||||
-e "s|@CXX@|$(foreach BIN,$(TARGET_CXX),'$(BIN)',)|" \
|
||||
-e "s|@AR@|$(TARGET_AR)|" \
|
||||
-e "s|@STRIP@|$(TARGET_CROSS)strip|" \
|
||||
-e "s|@NM@|$(TARGET_NM)|" \
|
||||
-e "s|@PKGCONFIG@|$(PKG_CONFIG)|" \
|
||||
-e "s|@CFLAGS@|$(foreach FLAG,$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS),'$(FLAG)',)|" \
|
||||
-e "s|@CXXFLAGS@|$(foreach FLAG,$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS),'$(FLAG)',)|" \
|
||||
-e "s|@LDFLAGS@|$(foreach FLAG,$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS),'$(FLAG)',)|" \
|
||||
-e "s|@ARCH@|$(MESON_ARCH)|" \
|
||||
-e "s|@CPU@|$(MESON_CPU)|" \
|
||||
-e "s|@ENDIAN@|$(if $(CONFIG_BIG_ENDIAN),big,little)|" \
|
||||
< $(MESON_DIR)/openwrt-cross.txt.in \
|
||||
> $(1)
|
||||
endef
|
||||
|
||||
define Host/Configure/Meson
|
||||
$(call Meson/CreateNativeFile,$(HOST_BUILD_DIR)/openwrt-native.txt)
|
||||
$(call Meson, \
|
||||
--native-file $(HOST_BUILD_DIR)/openwrt-native.txt \
|
||||
$(MESON_HOST_ARGS) \
|
||||
$(MESON_HOST_BUILD_DIR) \
|
||||
$(HOST_BUILD_DIR), \
|
||||
$(MESON_HOST_VARS))
|
||||
endef
|
||||
|
||||
define Host/Compile/Meson
|
||||
+$(NINJA) -C $(MESON_HOST_BUILD_DIR) $(1)
|
||||
endef
|
||||
|
||||
define Host/Install/Meson
|
||||
+$(NINJA) -C $(MESON_HOST_BUILD_DIR) install
|
||||
endef
|
||||
|
||||
define Host/Uninstall/Meson
|
||||
+$(NINJA) -C $(MESON_HOST_BUILD_DIR) uninstall || true
|
||||
endef
|
||||
|
||||
define Build/Configure/Meson
|
||||
$(call Meson/CreateNativeFile,$(PKG_BUILD_DIR)/openwrt-native.txt)
|
||||
$(call Meson/CreateCrossFile,$(PKG_BUILD_DIR)/openwrt-cross.txt)
|
||||
$(call Meson, \
|
||||
--buildtype plain \
|
||||
--native-file $(PKG_BUILD_DIR)/openwrt-native.txt \
|
||||
--cross-file $(PKG_BUILD_DIR)/openwrt-cross.txt \
|
||||
$(MESON_ARGS) \
|
||||
$(MESON_BUILD_DIR) \
|
||||
$(MESON_BUILD_DIR)/.., \
|
||||
$(MESON_VARS))
|
||||
endef
|
||||
|
||||
define Build/Compile/Meson
|
||||
+$(NINJA) -C $(MESON_BUILD_DIR) $(1)
|
||||
endef
|
||||
|
||||
define Build/Install/Meson
|
||||
+DESTDIR="$(PKG_INSTALL_DIR)" $(NINJA) -C $(MESON_BUILD_DIR) install
|
||||
endef
|
||||
|
||||
Host/Configure=$(call Host/Configure/Meson)
|
||||
Host/Compile=$(call Host/Compile/Meson)
|
||||
Host/Install=$(call Host/Install/Meson)
|
||||
Host/Uninstall=$(call Host/Uninstall/Meson)
|
||||
Build/Configure=$(call Build/Configure/Meson)
|
||||
Build/Compile=$(call Build/Compile/Meson)
|
||||
Build/Install=$(call Build/Install/Meson)
|
||||
@ -166,7 +166,11 @@ CM3_GCC_SOURCE=$(CM3_GCC_NAME)-$(CM3_GCC_RELEASE)-$(CM3_GCC_VERSION).tar.xz
|
||||
define Download/cm3-gcc
|
||||
FILE:=$(CM3_GCC_SOURCE)
|
||||
URL:=https://developer.arm.com/-/media/Files/downloads/gnu-a/$(CM3_GCC_RELEASE)/binrel
|
||||
ifeq ($(HOST_ARCH),aarch64)
|
||||
HASH:=1a42eecafa03dc6f32b8ae49ffcd15114dc818efbd72292fa6bab58233940bb9
|
||||
else
|
||||
HASH:=bf7ee185936d22d787b80c8da573f72ead5675695331fb8b590f0133ef1f6bb9
|
||||
endif
|
||||
endef
|
||||
|
||||
define Build/Clean
|
||||
|
||||
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=iproute2
|
||||
PKG_VERSION:=5.13.0
|
||||
PKG_VERSION:=5.14.0
|
||||
PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
|
||||
PKG_HASH:=72a2e53774cac9e65f7b617deebb2059f87e8960d6e9713e4d788cea966f1b36
|
||||
PKG_HASH:=210fa785a52f3763c4287fd5ae63e246f6311bfaa48c424baab6d383bb7591d4
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_BUILD_DEPENDS:=iptables
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -39,7 +39,8 @@ int main(int argc, char **argv) {
|
||||
@@ -34,7 +34,8 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
EOF
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -367,7 +367,7 @@ check_selinux()
|
||||
@@ -387,7 +387,7 @@ check_selinux()
|
||||
|
||||
check_mnl()
|
||||
{
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -235,7 +235,7 @@ EOF
|
||||
@@ -255,7 +255,7 @@ EOF
|
||||
|
||||
check_elf()
|
||||
{
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -425,7 +425,7 @@ EOF
|
||||
@@ -445,7 +445,7 @@ EOF
|
||||
|
||||
check_cap()
|
||||
{
|
||||
|
||||
@ -30,11 +30,11 @@
|
||||
"Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }\n"
|
||||
" ip [ -force ] -batch filename\n"
|
||||
+#ifndef IPROUTE2_TINY
|
||||
"where OBJECT := { address | addrlabel | fou | help | ila | l2tp | link |\n"
|
||||
" macsec | maddress | monitor | mptcp | mroute | mrule |\n"
|
||||
" neighbor | neighbour | netconf | netns | nexthop | ntable |\n"
|
||||
" ntbl | route | rule | sr | tap | tcpmetrics |\n"
|
||||
" token | tunnel | tuntap | vrf | xfrm }\n"
|
||||
"where OBJECT := { address | addrlabel | fou | help | ila | l2tp | link |\n"
|
||||
" macsec | maddress | monitor | mptcp | mroute | mrule |\n"
|
||||
" neighbor | neighbour | netconf | netns | nexthop | ntable |\n"
|
||||
" ntbl | route | rule | sr | tap | tcpmetrics |\n"
|
||||
" token | tunnel | tuntap | vrf | xfrm }\n"
|
||||
+#else
|
||||
+ "where OBJECT := { address | ila | link | macsec | maddress | monitor |\n"
|
||||
+ " mroute | mrule | neighbor | neighbour | netns | route |\n"
|
||||
@ -43,7 +43,7 @@
|
||||
" OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |\n"
|
||||
" -h[uman-readable] | -iec | -j[son] | -p[retty] |\n"
|
||||
" -f[amily] { inet | inet6 | mpls | bridge | link } |\n"
|
||||
@@ -90,36 +96,50 @@ static const struct cmd {
|
||||
@@ -91,36 +97,50 @@ static const struct cmd {
|
||||
int (*func)(int argc, char **argv);
|
||||
} cmds[] = {
|
||||
{ "address", do_ipaddr },
|
||||
|
||||
@ -31,7 +31,7 @@ Subject: [PATCH] add support for dropping with FAILED_POLICY
|
||||
if (!end || end == arg || *end || res > 255)
|
||||
--- a/include/uapi/linux/rtnetlink.h
|
||||
+++ b/include/uapi/linux/rtnetlink.h
|
||||
@@ -249,6 +249,7 @@ enum {
|
||||
@@ -256,6 +256,7 @@ enum {
|
||||
RTN_THROW, /* Not in this table */
|
||||
RTN_NAT, /* Translate this address */
|
||||
RTN_XRESOLVE, /* Use external resolver */
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -259,7 +259,7 @@ int main(int argc, char **argv) {
|
||||
@@ -279,7 +279,7 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
EOF
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
local ret=$?
|
||||
|
||||
rm -f $TMPDIR/libbpf_test.c $TMPDIR/libbpf_test
|
||||
@@ -277,7 +277,7 @@ int main(int argc, char **argv) {
|
||||
@@ -297,7 +297,7 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
EOF
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -411,14 +411,8 @@ EOF
|
||||
@@ -431,14 +431,8 @@ EOF
|
||||
if $CC -I$INCLUDE -o $TMPDIR/strtest $TMPDIR/strtest.c >/dev/null 2>&1; then
|
||||
echo "no"
|
||||
else
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -354,7 +354,7 @@ check_libbpf()
|
||||
@@ -374,7 +374,7 @@ check_libbpf()
|
||||
check_selinux()
|
||||
# SELinux is a compile time option in the ss utility
|
||||
{
|
||||
|
||||
@ -12,9 +12,9 @@ PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
|
||||
PKG_SOURCE_DATE:=2021-08-31
|
||||
PKG_SOURCE_VERSION:=773e8da41532b23888511cd864fbd251ecadc577
|
||||
PKG_MIRROR_HASH:=2b7c91427861f23fcd444fc05c033ed0f348ff353097a98d583f38a79ce294dd
|
||||
PKG_SOURCE_DATE:=2021-09-15
|
||||
PKG_SOURCE_VERSION:=1eb4371e2534296d04580cb8b9cb5baa5f07e27d
|
||||
PKG_MIRROR_HASH:=d0e61032482eebb225ffbca8034b3d838eaa3db0dcd9b0166e106e729ce5320c
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
6
rules.mk
6
rules.mk
@ -138,11 +138,7 @@ else
|
||||
endif
|
||||
|
||||
ifeq ($(or $(CONFIG_EXTERNAL_TOOLCHAIN),$(CONFIG_TARGET_uml)),)
|
||||
ifeq ($(CONFIG_GCC_USE_IREMAP),y)
|
||||
iremap = -iremap$(1):$(2)
|
||||
else
|
||||
iremap = -f$(if $(CONFIG_REPRODUCIBLE_DEBUG_INFO),file,macro)-prefix-map=$(1)=$(2)
|
||||
endif
|
||||
iremap = -f$(if $(CONFIG_REPRODUCIBLE_DEBUG_INFO),file,macro)-prefix-map=$(1)=$(2)
|
||||
endif
|
||||
|
||||
PACKAGE_DIR:=$(BIN_DIR)/packages
|
||||
|
||||
@ -1,116 +0,0 @@
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Subject: [PATCH] ARM: dts: BCM5301X: Add serial= to the bootargs
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
It's enough to have proper stdout-path for getting serial working but
|
||||
for some reason LEDE doesn't offer "Please press Enter to activate this
|
||||
console." unless ttyS0 is specified.
|
||||
|
||||
This is a workaround to get serial working in LEDE.
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
---
|
||||
|
||||
--- a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
|
||||
@@ -12,7 +12,7 @@
|
||||
model = "TP-LINK Archer C5 V2";
|
||||
|
||||
chosen {
|
||||
- bootargs = "earlycon";
|
||||
+ bootargs = "console=ttyS0,115200 earlycon";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
--- a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
|
||||
@@ -13,7 +13,7 @@
|
||||
model = "Luxul ABR-4500 V1";
|
||||
|
||||
chosen {
|
||||
- bootargs = "earlycon";
|
||||
+ bootargs = "console=ttyS0,115200 earlycon";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
--- a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
|
||||
@@ -13,7 +13,7 @@
|
||||
model = "Luxul XBR-4500 V1";
|
||||
|
||||
chosen {
|
||||
- bootargs = "earlycon";
|
||||
+ bootargs = "console=ttyS0,115200 earlycon";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
--- a/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
|
||||
@@ -12,7 +12,7 @@
|
||||
model = "Luxul XAP-1440 V1";
|
||||
|
||||
chosen {
|
||||
- bootargs = "earlycon";
|
||||
+ bootargs = "console=ttyS0,115200 earlycon";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
--- a/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
|
||||
@@ -12,7 +12,7 @@
|
||||
model = "Luxul XAP-810 V1";
|
||||
|
||||
chosen {
|
||||
- bootargs = "earlycon";
|
||||
+ bootargs = "console=ttyS0,115200 earlycon";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
--- a/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
|
||||
@@ -12,7 +12,7 @@
|
||||
model = "Luxul XAP-1610 V1";
|
||||
|
||||
chosen {
|
||||
- bootargs = "earlycon";
|
||||
+ bootargs = "console=ttyS0,115200 earlycon";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
|
||||
@@ -13,7 +13,7 @@
|
||||
model = "Luxul XWR-3150 V1";
|
||||
|
||||
chosen {
|
||||
- bootargs = "earlycon";
|
||||
+ bootargs = "console=ttyS0,115200 earlycon";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
--- a/arch/arm/boot/dts/bcm47094-phicomm-k3.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47094-phicomm-k3.dts
|
||||
@@ -13,6 +13,10 @@
|
||||
compatible = "phicomm,k3", "brcm,bcm47094", "brcm,bcm4708";
|
||||
model = "Phicomm K3";
|
||||
|
||||
+ chosen {
|
||||
+ bootargs = "console=ttyS0,115200";
|
||||
+ };
|
||||
+
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x08000000>,
|
||||
--- a/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
|
||||
@@ -13,7 +13,7 @@
|
||||
model = "Luxul XWC-2000 V1";
|
||||
|
||||
chosen {
|
||||
- bootargs = "earlycon";
|
||||
+ bootargs = "console=ttyS0,115200 earlycon";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
@ -13,7 +13,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
|
||||
--- a/drivers/net/dsa/b53/b53_common.c
|
||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||
@@ -1148,6 +1148,36 @@ static void b53_force_port_config(struct
|
||||
@@ -1174,6 +1174,36 @@ static void b53_force_port_config(struct
|
||||
b53_write8(dev, B53_CTRL_PAGE, off, reg);
|
||||
}
|
||||
|
||||
@ -50,7 +50,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
static void b53_adjust_link(struct dsa_switch *ds, int port,
|
||||
struct phy_device *phydev)
|
||||
{
|
||||
@@ -1174,6 +1204,9 @@ static void b53_adjust_link(struct dsa_s
|
||||
@@ -1200,6 +1230,9 @@ static void b53_adjust_link(struct dsa_s
|
||||
tx_pause, rx_pause);
|
||||
b53_force_link(dev, port, phydev->link);
|
||||
|
||||
@ -58,9 +58,9 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
+ b53_adjust_63xx_rgmii(ds, port, phydev->interface);
|
||||
+
|
||||
if (is531x5(dev) && phy_interface_is_rgmii(phydev)) {
|
||||
if (port == 8)
|
||||
if (port == dev->imp_port)
|
||||
off = B53_RGMII_CTRL_IMP;
|
||||
@@ -1366,6 +1399,9 @@ void b53_phylink_mac_link_up(struct dsa_
|
||||
@@ -1386,6 +1419,9 @@ void b53_phylink_mac_link_up(struct dsa_
|
||||
{
|
||||
struct b53_device *dev = ds->priv;
|
||||
|
||||
|
||||
@ -0,0 +1,65 @@
|
||||
From ee47ed08d75e8f16b3cf882061ee19c2ea19dd6c Mon Sep 17 00:00:00 2001
|
||||
From: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Date: Wed, 10 Mar 2021 10:52:26 -0800
|
||||
Subject: [PATCH] net: dsa: b53: Add debug prints in b53_vlan_enable()
|
||||
|
||||
Having dynamic debug prints in b53_vlan_enable() has been helpful to
|
||||
uncover a recent but update the function to indicate the port being
|
||||
configured (or -1 for initial setup) and include the global VLAN enabled
|
||||
and VLAN filtering enable status.
|
||||
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/dsa/b53/b53_common.c | 11 +++++++----
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/drivers/net/dsa/b53/b53_common.c
|
||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||
@@ -349,7 +349,7 @@ static void b53_set_forwarding(struct b5
|
||||
b53_write8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, mgmt);
|
||||
}
|
||||
|
||||
-static void b53_enable_vlan(struct b53_device *dev, bool enable,
|
||||
+static void b53_enable_vlan(struct b53_device *dev, int port, bool enable,
|
||||
bool enable_filtering)
|
||||
{
|
||||
u8 mgmt, vc0, vc1, vc4 = 0, vc5;
|
||||
@@ -431,6 +431,9 @@ static void b53_enable_vlan(struct b53_d
|
||||
b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_MODE, mgmt);
|
||||
|
||||
dev->vlan_enabled = enable;
|
||||
+
|
||||
+ dev_dbg(dev->dev, "Port %d VLAN enabled: %d, filtering: %d\n",
|
||||
+ port, enable, enable_filtering);
|
||||
}
|
||||
|
||||
static int b53_set_jumbo(struct b53_device *dev, bool enable, bool allow_10_100)
|
||||
@@ -708,7 +711,7 @@ int b53_configure_vlan(struct dsa_switch
|
||||
b53_do_vlan_op(dev, VTA_CMD_CLEAR);
|
||||
}
|
||||
|
||||
- b53_enable_vlan(dev, dev->vlan_enabled, ds->vlan_filtering);
|
||||
+ b53_enable_vlan(dev, -1, dev->vlan_enabled, ds->vlan_filtering);
|
||||
|
||||
b53_for_each_port(dev, i)
|
||||
b53_write16(dev, B53_VLAN_PAGE,
|
||||
@@ -1390,7 +1393,7 @@ int b53_vlan_filtering(struct dsa_switch
|
||||
if (switchdev_trans_ph_prepare(trans))
|
||||
return 0;
|
||||
|
||||
- b53_enable_vlan(dev, dev->vlan_enabled, vlan_filtering);
|
||||
+ b53_enable_vlan(dev, port, dev->vlan_enabled, vlan_filtering);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1415,7 +1418,7 @@ int b53_vlan_prepare(struct dsa_switch *
|
||||
if (vlan->vid_end >= dev->num_vlans)
|
||||
return -ERANGE;
|
||||
|
||||
- b53_enable_vlan(dev, true, ds->vlan_filtering);
|
||||
+ b53_enable_vlan(dev, port, true, ds->vlan_filtering);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
From 964dbf186eaa84d409c359ddf09c827a3fbe8228 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
||||
Date: Wed, 17 Mar 2021 11:29:26 +0100
|
||||
Subject: [PATCH 1/2] net: dsa: tag_brcm: add support for legacy tags
|
||||
Subject: [PATCH] net: dsa: tag_brcm: add support for legacy tags
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -1,7 +1,7 @@
|
||||
From 46c5176c586c81306bf9e7024c13b95da775490f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
||||
Date: Wed, 17 Mar 2021 11:29:27 +0100
|
||||
Subject: [PATCH 2/2] net: dsa: b53: support legacy tags
|
||||
Subject: [PATCH] net: dsa: b53: support legacy tags
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -28,7 +28,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
This driver adds support for Broadcom managed switch chips. It supports
|
||||
--- a/drivers/net/dsa/b53/b53_common.c
|
||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||
@@ -2021,15 +2021,17 @@ enum dsa_tag_protocol b53_get_tag_protoc
|
||||
@@ -2024,15 +2024,17 @@ enum dsa_tag_protocol b53_get_tag_protoc
|
||||
{
|
||||
struct b53_device *dev = ds->priv;
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
From 866f1577ba69bde2b9f36c300f603596c7d84a62 Mon Sep 17 00:00:00 2001
|
||||
From: Qinglang Miao <miaoqinglang@huawei.com>
|
||||
Date: Thu, 25 Mar 2021 17:19:54 +0800
|
||||
Subject: [PATCH] net: dsa: b53: spi: add missing MODULE_DEVICE_TABLE
|
||||
|
||||
This patch adds missing MODULE_DEVICE_TABLE definition which generates
|
||||
correct modalias for automatic loading of this driver when it is built
|
||||
as an external module.
|
||||
|
||||
Reported-by: Hulk Robot <hulkci@huawei.com>
|
||||
Signed-off-by: Qinglang Miao <miaoqinglang@huawei.com>
|
||||
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/dsa/b53/b53_spi.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/drivers/net/dsa/b53/b53_spi.c
|
||||
+++ b/drivers/net/dsa/b53/b53_spi.c
|
||||
@@ -335,6 +335,7 @@ static const struct of_device_id b53_spi
|
||||
{ .compatible = "brcm,bcm53128" },
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(of, b53_spi_of_match);
|
||||
|
||||
static struct spi_driver b53_spi_driver = {
|
||||
.driver = {
|
||||
@ -0,0 +1,86 @@
|
||||
From 2c32a3d3c233b855943677609fe388f82b1f0975 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Date: Tue, 8 Jun 2021 14:22:04 -0700
|
||||
Subject: [PATCH] net: dsa: b53: Do not force CPU to be always tagged
|
||||
|
||||
Commit ca8931948344 ("net: dsa: b53: Keep CPU port as tagged in all
|
||||
VLANs") forced the CPU port to be always tagged in any VLAN membership.
|
||||
This was necessary back then because we did not support Broadcom tags
|
||||
for all configurations so the only way to differentiate tagged and
|
||||
untagged traffic while DSA_TAG_PROTO_NONE was used was to force the CPU
|
||||
port into being always tagged.
|
||||
|
||||
With most configurations enabling Broadcom tags, especially after
|
||||
8fab459e69ab ("net: dsa: b53: Enable Broadcom tags for 531x5/539x
|
||||
families") we do not need to apply this unconditional force tagging of
|
||||
the CPU port in all VLANs.
|
||||
|
||||
A helper function is introduced to faciliate the encapsulation of the
|
||||
specific condition requiring the CPU port to be tagged in all VLANs and
|
||||
the dsa_switch_ops::untag_bridge_pvid boolean is moved to when
|
||||
dsa_switch_ops::setup is called when we have already determined the
|
||||
tagging protocol we will be using.
|
||||
|
||||
Reported-by: Matthew Hagan <mnhagan88@gmail.com>
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
|
||||
Tested-by: Matthew Hagan <mnhagan88@gmail.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/dsa/b53/b53_common.c | 17 ++++++++++++++---
|
||||
1 file changed, 14 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/drivers/net/dsa/b53/b53_common.c
|
||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||
@@ -1049,6 +1049,11 @@ static int b53_setup(struct dsa_switch *
|
||||
unsigned int port;
|
||||
int ret;
|
||||
|
||||
+ /* Request bridge PVID untagged when DSA_TAG_PROTO_NONE is set
|
||||
+ * which forces the CPU port to be tagged in all VLANs.
|
||||
+ */
|
||||
+ ds->untag_bridge_pvid = dev->tag_protocol == DSA_TAG_PROTO_NONE;
|
||||
+
|
||||
ret = b53_reset_switch(dev);
|
||||
if (ret) {
|
||||
dev_err(ds->dev, "failed to reset switch\n");
|
||||
@@ -1423,6 +1428,13 @@ int b53_vlan_prepare(struct dsa_switch *
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(b53_vlan_prepare);
|
||||
+
|
||||
+static bool b53_vlan_port_needs_forced_tagged(struct dsa_switch *ds, int port)
|
||||
+{
|
||||
+ struct b53_device *dev = ds->priv;
|
||||
+
|
||||
+ return dev->tag_protocol == DSA_TAG_PROTO_NONE && dsa_is_cpu_port(ds, port);
|
||||
+}
|
||||
|
||||
void b53_vlan_add(struct dsa_switch *ds, int port,
|
||||
const struct switchdev_obj_port_vlan *vlan)
|
||||
@@ -1442,7 +1454,7 @@ void b53_vlan_add(struct dsa_switch *ds,
|
||||
untagged = true;
|
||||
|
||||
vl->members |= BIT(port);
|
||||
- if (untagged && !dsa_is_cpu_port(ds, port))
|
||||
+ if (untagged && !b53_vlan_port_needs_forced_tagged(ds, port))
|
||||
vl->untag |= BIT(port);
|
||||
else
|
||||
vl->untag &= ~BIT(port);
|
||||
@@ -1480,7 +1492,7 @@ int b53_vlan_del(struct dsa_switch *ds,
|
||||
if (pvid == vid)
|
||||
pvid = b53_default_pvid(dev);
|
||||
|
||||
- if (untagged && !dsa_is_cpu_port(ds, port))
|
||||
+ if (untagged && !b53_vlan_port_needs_forced_tagged(ds, port))
|
||||
vl->untag &= ~(BIT(port));
|
||||
|
||||
b53_set_vlan_entry(dev, vid, vl);
|
||||
@@ -2623,7 +2635,6 @@ struct b53_device *b53_switch_alloc(stru
|
||||
dev->ops = ops;
|
||||
ds->ops = &b53_switch_ops;
|
||||
ds->configure_vlan_while_not_filtering = true;
|
||||
- ds->untag_bridge_pvid = true;
|
||||
dev->vlan_enabled = ds->configure_vlan_while_not_filtering;
|
||||
/* Let DSA handle the case were multiple bridges span the same switch
|
||||
* device and different VLAN awareness settings are requested, which
|
||||
@ -0,0 +1,30 @@
|
||||
From 11b57faf951cd3a570e3d9e463fc7c41023bc8c6 Mon Sep 17 00:00:00 2001
|
||||
From: Colin Ian King <colin.king@canonical.com>
|
||||
Date: Tue, 15 Jun 2021 10:05:16 +0100
|
||||
Subject: [PATCH] net: dsa: b53: remove redundant null check on dev
|
||||
|
||||
The pointer dev can never be null, the null check is redundant
|
||||
and can be removed. Cleans up a static analysis warning that
|
||||
pointer priv is dereferencing dev before dev is being null
|
||||
checked.
|
||||
|
||||
Addresses-Coverity: ("Dereference before null check")
|
||||
Signed-off-by: Colin Ian King <colin.king@canonical.com>
|
||||
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/dsa/b53/b53_srab.c | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/net/dsa/b53/b53_srab.c
|
||||
+++ b/drivers/net/dsa/b53/b53_srab.c
|
||||
@@ -632,8 +632,7 @@ static int b53_srab_remove(struct platfo
|
||||
struct b53_srab_priv *priv = dev->priv;
|
||||
|
||||
b53_srab_intr_set(priv, false);
|
||||
- if (dev)
|
||||
- b53_switch_remove(dev);
|
||||
+ b53_switch_remove(dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
From 64a81b24487f0d2fba0f033029eec2abc7d82cee Mon Sep 17 00:00:00 2001
|
||||
From: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Date: Mon, 21 Jun 2021 15:10:55 -0700
|
||||
Subject: [PATCH] net: dsa: b53: Create default VLAN entry explicitly
|
||||
|
||||
In case CONFIG_VLAN_8021Q is not set, there will be no call down to the
|
||||
b53 driver to ensure that the default PVID VLAN entry will be configured
|
||||
with the appropriate untagged attribute towards the CPU port. We were
|
||||
implicitly relying on dsa_slave_vlan_rx_add_vid() to do that for us,
|
||||
instead make it explicit.
|
||||
|
||||
Reported-by: Vladimir Oltean <olteanv@gmail.com>
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/dsa/b53/b53_common.c | 27 +++++++++++++++++++--------
|
||||
1 file changed, 19 insertions(+), 8 deletions(-)
|
||||
|
||||
--- a/drivers/net/dsa/b53/b53_common.c
|
||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||
@@ -693,6 +693,13 @@ static u16 b53_default_pvid(struct b53_d
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static bool b53_vlan_port_needs_forced_tagged(struct dsa_switch *ds, int port)
|
||||
+{
|
||||
+ struct b53_device *dev = ds->priv;
|
||||
+
|
||||
+ return dev->tag_protocol == DSA_TAG_PROTO_NONE && dsa_is_cpu_port(ds, port);
|
||||
+}
|
||||
+
|
||||
int b53_configure_vlan(struct dsa_switch *ds)
|
||||
{
|
||||
struct b53_device *dev = ds->priv;
|
||||
@@ -713,9 +720,20 @@ int b53_configure_vlan(struct dsa_switch
|
||||
|
||||
b53_enable_vlan(dev, -1, dev->vlan_enabled, ds->vlan_filtering);
|
||||
|
||||
- b53_for_each_port(dev, i)
|
||||
+ /* Create an untagged VLAN entry for the default PVID in case
|
||||
+ * CONFIG_VLAN_8021Q is disabled and there are no calls to
|
||||
+ * dsa_slave_vlan_rx_add_vid() to create the default VLAN
|
||||
+ * entry. Do this only when the tagging protocol is not
|
||||
+ * DSA_TAG_PROTO_NONE
|
||||
+ */
|
||||
+ b53_for_each_port(dev, i) {
|
||||
+ v = &dev->vlans[def_vid];
|
||||
+ v->members |= BIT(i);
|
||||
+ if (!b53_vlan_port_needs_forced_tagged(ds, i))
|
||||
+ v->untag = v->members;
|
||||
b53_write16(dev, B53_VLAN_PAGE,
|
||||
B53_VLAN_PORT_DEF_TAG(i), def_vid);
|
||||
+ }
|
||||
|
||||
/* Upon initial call we have not set-up any VLANs, but upon
|
||||
* system resume, we need to restore all VLAN entries.
|
||||
@@ -1429,13 +1447,6 @@ int b53_vlan_prepare(struct dsa_switch *
|
||||
}
|
||||
EXPORT_SYMBOL(b53_vlan_prepare);
|
||||
|
||||
-static bool b53_vlan_port_needs_forced_tagged(struct dsa_switch *ds, int port)
|
||||
-{
|
||||
- struct b53_device *dev = ds->priv;
|
||||
-
|
||||
- return dev->tag_protocol == DSA_TAG_PROTO_NONE && dsa_is_cpu_port(ds, port);
|
||||
-}
|
||||
-
|
||||
void b53_vlan_add(struct dsa_switch *ds, int port,
|
||||
const struct switchdev_obj_port_vlan *vlan)
|
||||
{
|
||||
@ -26,7 +26,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/dsa/b53/b53_common.c
|
||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||
@@ -2556,9 +2556,8 @@ static int b53_switch_init(struct b53_de
|
||||
@@ -2584,9 +2584,8 @@ static int b53_switch_init(struct b53_de
|
||||
dev->cpu_port = 5;
|
||||
}
|
||||
|
||||
@ -24,7 +24,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/dsa/b53/b53_common.c
|
||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||
@@ -2559,6 +2559,8 @@ static int b53_switch_init(struct b53_de
|
||||
@@ -2587,6 +2587,8 @@ static int b53_switch_init(struct b53_de
|
||||
dev->enabled_ports |= BIT(dev->cpu_port);
|
||||
dev->num_ports = fls(dev->enabled_ports);
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
/* Include non standard CPU port built-in PHYs to be probed */
|
||||
if (is539x(dev) || is531x5(dev)) {
|
||||
for (i = 0; i < dev->num_ports; i++) {
|
||||
@@ -2603,7 +2605,6 @@ struct b53_device *b53_switch_alloc(stru
|
||||
@@ -2631,7 +2633,6 @@ struct b53_device *b53_switch_alloc(stru
|
||||
return NULL;
|
||||
|
||||
ds->dev = base;
|
||||
@ -0,0 +1,237 @@
|
||||
From 63f8428b4077de3664eb0b252393c839b0b293ec Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Sun, 5 Sep 2021 19:23:28 +0200
|
||||
Subject: [PATCH] net: dsa: b53: Fix IMP port setup on BCM5301x
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Broadcom's b53 switches have one IMP (Inband Management Port) that needs
|
||||
to be programmed using its own designed register. IMP port may be
|
||||
different than CPU port - especially on devices with multiple CPU ports.
|
||||
|
||||
For that reason it's required to explicitly note IMP port index and
|
||||
check for it when choosing a register to use.
|
||||
|
||||
This commit fixes BCM5301x support. Those switches use CPU port 5 while
|
||||
their IMP port is 8. Before this patch b53 was trying to program port 5
|
||||
with B53_PORT_OVERRIDE_CTRL instead of B53_GMII_PORT_OVERRIDE_CTRL(5).
|
||||
|
||||
It may be possible to also replace "cpu_port" usages with
|
||||
dsa_is_cpu_port() but that is out of the scope of thix BCM5301x fix.
|
||||
|
||||
Fixes: 967dd82ffc52 ("net: dsa: b53: Add support for Broadcom RoboSwitch")
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/dsa/b53/b53_common.c | 28 +++++++++++++++++++++++++---
|
||||
drivers/net/dsa/b53/b53_priv.h | 1 +
|
||||
2 files changed, 26 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/drivers/net/dsa/b53/b53_common.c
|
||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||
@@ -1109,7 +1109,7 @@ static void b53_force_link(struct b53_de
|
||||
u8 reg, val, off;
|
||||
|
||||
/* Override the port settings */
|
||||
- if (port == dev->cpu_port) {
|
||||
+ if (port == dev->imp_port) {
|
||||
off = B53_PORT_OVERRIDE_CTRL;
|
||||
val = PORT_OVERRIDE_EN;
|
||||
} else {
|
||||
@@ -1133,7 +1133,7 @@ static void b53_force_port_config(struct
|
||||
u8 reg, val, off;
|
||||
|
||||
/* Override the port settings */
|
||||
- if (port == dev->cpu_port) {
|
||||
+ if (port == dev->imp_port) {
|
||||
off = B53_PORT_OVERRIDE_CTRL;
|
||||
val = PORT_OVERRIDE_EN;
|
||||
} else {
|
||||
@@ -1201,7 +1201,7 @@ static void b53_adjust_link(struct dsa_s
|
||||
b53_force_link(dev, port, phydev->link);
|
||||
|
||||
if (is531x5(dev) && phy_interface_is_rgmii(phydev)) {
|
||||
- if (port == 8)
|
||||
+ if (port == dev->imp_port)
|
||||
off = B53_RGMII_CTRL_IMP;
|
||||
else
|
||||
off = B53_RGMII_CTRL_P(port);
|
||||
@@ -2266,6 +2266,7 @@ struct b53_chip_data {
|
||||
const char *dev_name;
|
||||
u16 vlans;
|
||||
u16 enabled_ports;
|
||||
+ u8 imp_port;
|
||||
u8 cpu_port;
|
||||
u8 vta_regs[3];
|
||||
u8 arl_bins;
|
||||
@@ -2290,6 +2291,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x1f,
|
||||
.arl_bins = 2,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 5,
|
||||
.cpu_port = B53_CPU_PORT_25,
|
||||
.duplex_reg = B53_DUPLEX_STAT_FE,
|
||||
},
|
||||
@@ -2300,6 +2302,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x1f,
|
||||
.arl_bins = 2,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 5,
|
||||
.cpu_port = B53_CPU_PORT_25,
|
||||
.duplex_reg = B53_DUPLEX_STAT_FE,
|
||||
},
|
||||
@@ -2310,6 +2313,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x1f,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2323,6 +2327,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x1f,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2336,6 +2341,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x1f,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS_9798,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2349,6 +2355,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x7f,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS_9798,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2363,6 +2370,7 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2375,6 +2383,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0xff,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2388,6 +2397,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x1ff,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2401,6 +2411,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0, /* pdata must provide them */
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS_63XX,
|
||||
.duplex_reg = B53_DUPLEX_STAT_63XX,
|
||||
@@ -2414,6 +2425,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x1f,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT_25, /* TODO: auto detect */
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2427,6 +2439,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x1bf,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT_25, /* TODO: auto detect */
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2440,6 +2453,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x1bf,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT_25, /* TODO: auto detect */
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2453,6 +2467,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x1f,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT_25, /* TODO: auto detect */
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2466,6 +2481,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x1f,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT_25, /* TODO: auto detect */
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2479,6 +2495,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x1ff,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2492,6 +2509,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x103,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2505,6 +2523,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x1ff,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2518,6 +2537,7 @@ static const struct b53_chip_data b53_sw
|
||||
.enabled_ports = 0x1ff,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 256,
|
||||
+ .imp_port = 8,
|
||||
.cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
@@ -2543,6 +2563,7 @@ static int b53_switch_init(struct b53_de
|
||||
dev->vta_regs[1] = chip->vta_regs[1];
|
||||
dev->vta_regs[2] = chip->vta_regs[2];
|
||||
dev->jumbo_pm_reg = chip->jumbo_pm_reg;
|
||||
+ dev->imp_port = chip->imp_port;
|
||||
dev->cpu_port = chip->cpu_port;
|
||||
dev->num_vlans = chip->vlans;
|
||||
dev->num_arl_bins = chip->arl_bins;
|
||||
--- a/drivers/net/dsa/b53/b53_priv.h
|
||||
+++ b/drivers/net/dsa/b53/b53_priv.h
|
||||
@@ -122,6 +122,7 @@ struct b53_device {
|
||||
|
||||
/* used ports mask */
|
||||
u16 enabled_ports;
|
||||
+ unsigned int imp_port;
|
||||
unsigned int cpu_port;
|
||||
|
||||
/* connect specific data */
|
||||
@ -0,0 +1,131 @@
|
||||
From 983d96a9116a328668601555d96736261d33170c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Thu, 16 Sep 2021 14:03:51 +0200
|
||||
Subject: [PATCH] net: dsa: b53: Include all ports in "enabled_ports"
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Make "enabled_ports" bitfield contain all available switch ports
|
||||
including a CPU port. This way there is no need for fixup during
|
||||
initialization.
|
||||
|
||||
For BCM53010, BCM53018 and BCM53019 include also other available ports.
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
---
|
||||
drivers/net/dsa/b53/b53_common.c | 23 +++++++++++------------
|
||||
1 file changed, 11 insertions(+), 12 deletions(-)
|
||||
|
||||
--- a/drivers/net/dsa/b53/b53_common.c
|
||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||
@@ -2288,7 +2288,7 @@ static const struct b53_chip_data b53_sw
|
||||
.chip_id = BCM5325_DEVICE_ID,
|
||||
.dev_name = "BCM5325",
|
||||
.vlans = 16,
|
||||
- .enabled_ports = 0x1f,
|
||||
+ .enabled_ports = 0x3f,
|
||||
.arl_bins = 2,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 5,
|
||||
@@ -2299,7 +2299,7 @@ static const struct b53_chip_data b53_sw
|
||||
.chip_id = BCM5365_DEVICE_ID,
|
||||
.dev_name = "BCM5365",
|
||||
.vlans = 256,
|
||||
- .enabled_ports = 0x1f,
|
||||
+ .enabled_ports = 0x3f,
|
||||
.arl_bins = 2,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 5,
|
||||
@@ -2310,7 +2310,7 @@ static const struct b53_chip_data b53_sw
|
||||
.chip_id = BCM5389_DEVICE_ID,
|
||||
.dev_name = "BCM5389",
|
||||
.vlans = 4096,
|
||||
- .enabled_ports = 0x1f,
|
||||
+ .enabled_ports = 0x11f,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
@@ -2324,7 +2324,7 @@ static const struct b53_chip_data b53_sw
|
||||
.chip_id = BCM5395_DEVICE_ID,
|
||||
.dev_name = "BCM5395",
|
||||
.vlans = 4096,
|
||||
- .enabled_ports = 0x1f,
|
||||
+ .enabled_ports = 0x11f,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
@@ -2338,7 +2338,7 @@ static const struct b53_chip_data b53_sw
|
||||
.chip_id = BCM5397_DEVICE_ID,
|
||||
.dev_name = "BCM5397",
|
||||
.vlans = 4096,
|
||||
- .enabled_ports = 0x1f,
|
||||
+ .enabled_ports = 0x11f,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
@@ -2352,7 +2352,7 @@ static const struct b53_chip_data b53_sw
|
||||
.chip_id = BCM5398_DEVICE_ID,
|
||||
.dev_name = "BCM5398",
|
||||
.vlans = 4096,
|
||||
- .enabled_ports = 0x7f,
|
||||
+ .enabled_ports = 0x17f,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
@@ -2366,7 +2366,7 @@ static const struct b53_chip_data b53_sw
|
||||
.chip_id = BCM53115_DEVICE_ID,
|
||||
.dev_name = "BCM53115",
|
||||
.vlans = 4096,
|
||||
- .enabled_ports = 0x1f,
|
||||
+ .enabled_ports = 0x11f,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
@@ -2380,7 +2380,7 @@ static const struct b53_chip_data b53_sw
|
||||
.chip_id = BCM53125_DEVICE_ID,
|
||||
.dev_name = "BCM53125",
|
||||
.vlans = 4096,
|
||||
- .enabled_ports = 0xff,
|
||||
+ .enabled_ports = 0x1ff,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
@@ -2422,7 +2422,7 @@ static const struct b53_chip_data b53_sw
|
||||
.chip_id = BCM53010_DEVICE_ID,
|
||||
.dev_name = "BCM53010",
|
||||
.vlans = 4096,
|
||||
- .enabled_ports = 0x1f,
|
||||
+ .enabled_ports = 0x1bf,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
@@ -2464,7 +2464,7 @@ static const struct b53_chip_data b53_sw
|
||||
.chip_id = BCM53018_DEVICE_ID,
|
||||
.dev_name = "BCM53018",
|
||||
.vlans = 4096,
|
||||
- .enabled_ports = 0x1f,
|
||||
+ .enabled_ports = 0x1bf,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
@@ -2478,7 +2478,7 @@ static const struct b53_chip_data b53_sw
|
||||
.chip_id = BCM53019_DEVICE_ID,
|
||||
.dev_name = "BCM53019",
|
||||
.vlans = 4096,
|
||||
- .enabled_ports = 0x1f,
|
||||
+ .enabled_ports = 0x1bf,
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
@@ -2605,7 +2605,6 @@ static int b53_switch_init(struct b53_de
|
||||
dev->cpu_port = 5;
|
||||
}
|
||||
|
||||
- dev->enabled_ports |= BIT(dev->cpu_port);
|
||||
dev->num_ports = fls(dev->enabled_ports);
|
||||
|
||||
dev->ds->num_ports = min_t(unsigned int, dev->num_ports, DSA_MAX_PORTS);
|
||||
@ -0,0 +1,42 @@
|
||||
From b290c6384afabbca5ae6e2af72fb1b2bc37922be Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Thu, 16 Sep 2021 14:03:52 +0200
|
||||
Subject: [PATCH] net: dsa: b53: Drop BCM5301x workaround for a wrong CPU/IMP
|
||||
port
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
On BCM5301x port 8 requires a fixed link when used.
|
||||
|
||||
Years ago when b53 was an OpenWrt downstream driver (with configuration
|
||||
based on sometimes bugged NVRAM) there was a need for a fixup. In case
|
||||
of forcing fixed link for (incorrectly specified) port 5 the code had to
|
||||
actually setup port 8 link.
|
||||
|
||||
For upstream b53 driver with setup based on DT there is no need for that
|
||||
workaround. In DT we have and require correct ports setup.
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
---
|
||||
drivers/net/dsa/b53/b53_common.c | 6 ------
|
||||
1 file changed, 6 deletions(-)
|
||||
|
||||
--- a/drivers/net/dsa/b53/b53_common.c
|
||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||
@@ -1256,12 +1256,6 @@ static void b53_adjust_link(struct dsa_s
|
||||
return;
|
||||
}
|
||||
}
|
||||
- } else if (is5301x(dev)) {
|
||||
- if (port != dev->cpu_port) {
|
||||
- b53_force_port_config(dev, dev->cpu_port, 2000,
|
||||
- DUPLEX_FULL, true, true);
|
||||
- b53_force_link(dev, dev->cpu_port, 1);
|
||||
- }
|
||||
}
|
||||
|
||||
/* Re-negotiate EEE if it was enabled already */
|
||||
@ -0,0 +1,32 @@
|
||||
From 3ff26b29230c54fea2353b63124c589b61953e14 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Thu, 16 Sep 2021 14:03:53 +0200
|
||||
Subject: [PATCH] net: dsa: b53: Improve flow control setup on BCM5301x
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
According to the Broadcom's reference driver flow control needs to be
|
||||
enabled for any CPU switch port (5, 7 or 8 - depending on which one is
|
||||
used). Current code makes it work only for the port 5. Use
|
||||
dsa_is_cpu_port() which solved that problem.
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
---
|
||||
drivers/net/dsa/b53/b53_common.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/net/dsa/b53/b53_common.c
|
||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||
@@ -1187,7 +1187,7 @@ static void b53_adjust_link(struct dsa_s
|
||||
return;
|
||||
|
||||
/* Enable flow control on BCM5301x's CPU port */
|
||||
- if (is5301x(dev) && port == dev->cpu_port)
|
||||
+ if (is5301x(dev) && dsa_is_cpu_port(ds, port))
|
||||
tx_pause = rx_pause = true;
|
||||
|
||||
if (phydev->pause) {
|
||||
@ -0,0 +1,205 @@
|
||||
From 7d5af56418d7d01e43247a33b6fe6492ea871923 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Thu, 16 Sep 2021 14:03:54 +0200
|
||||
Subject: [PATCH] net: dsa: b53: Drop unused "cpu_port" field
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
It's set but never used anymore.
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
---
|
||||
drivers/net/dsa/b53/b53_common.c | 28 ----------------------------
|
||||
drivers/net/dsa/b53/b53_priv.h | 1 -
|
||||
2 files changed, 29 deletions(-)
|
||||
|
||||
--- a/drivers/net/dsa/b53/b53_common.c
|
||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||
@@ -2286,7 +2286,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 2,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 5,
|
||||
- .cpu_port = B53_CPU_PORT_25,
|
||||
.duplex_reg = B53_DUPLEX_STAT_FE,
|
||||
},
|
||||
{
|
||||
@@ -2297,7 +2296,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 2,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 5,
|
||||
- .cpu_port = B53_CPU_PORT_25,
|
||||
.duplex_reg = B53_DUPLEX_STAT_FE,
|
||||
},
|
||||
{
|
||||
@@ -2308,7 +2306,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2322,7 +2319,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2336,7 +2332,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS_9798,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2350,7 +2345,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS_9798,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2365,7 +2359,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_buckets = 1024,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
|
||||
@@ -2378,7 +2371,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2392,7 +2384,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2406,7 +2397,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS_63XX,
|
||||
.duplex_reg = B53_DUPLEX_STAT_63XX,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK_63XX,
|
||||
@@ -2420,7 +2410,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT_25, /* TODO: auto detect */
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2434,7 +2423,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT_25, /* TODO: auto detect */
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2448,7 +2436,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT_25, /* TODO: auto detect */
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2462,7 +2449,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT_25, /* TODO: auto detect */
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2476,7 +2462,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT_25, /* TODO: auto detect */
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2490,7 +2475,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2504,7 +2488,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2518,7 +2501,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 1024,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2532,7 +2514,6 @@ static const struct b53_chip_data b53_sw
|
||||
.arl_bins = 4,
|
||||
.arl_buckets = 256,
|
||||
.imp_port = 8,
|
||||
- .cpu_port = B53_CPU_PORT,
|
||||
.vta_regs = B53_VTA_REGS,
|
||||
.duplex_reg = B53_DUPLEX_STAT_GE,
|
||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||
@@ -2558,7 +2539,6 @@ static int b53_switch_init(struct b53_de
|
||||
dev->vta_regs[2] = chip->vta_regs[2];
|
||||
dev->jumbo_pm_reg = chip->jumbo_pm_reg;
|
||||
dev->imp_port = chip->imp_port;
|
||||
- dev->cpu_port = chip->cpu_port;
|
||||
dev->num_vlans = chip->vlans;
|
||||
dev->num_arl_bins = chip->arl_bins;
|
||||
dev->num_arl_buckets = chip->arl_buckets;
|
||||
@@ -2590,13 +2570,6 @@ static int b53_switch_init(struct b53_de
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
- } else if (dev->chip_id == BCM53115_DEVICE_ID) {
|
||||
- u64 strap_value;
|
||||
-
|
||||
- b53_read48(dev, B53_STAT_PAGE, B53_STRAP_VALUE, &strap_value);
|
||||
- /* use second IMP port if GMII is enabled */
|
||||
- if (strap_value & SV_GMII_CTRL_115)
|
||||
- dev->cpu_port = 5;
|
||||
}
|
||||
|
||||
dev->num_ports = fls(dev->enabled_ports);
|
||||
--- a/drivers/net/dsa/b53/b53_priv.h
|
||||
+++ b/drivers/net/dsa/b53/b53_priv.h
|
||||
@@ -123,7 +123,6 @@ struct b53_device {
|
||||
/* used ports mask */
|
||||
u16 enabled_ports;
|
||||
unsigned int imp_port;
|
||||
- unsigned int cpu_port;
|
||||
|
||||
/* connect specific data */
|
||||
u8 current_page;
|
||||
@ -3856,6 +3856,7 @@ CONFIG_NET_CORE=y
|
||||
# CONFIG_NET_DSA_TAG_8021Q is not set
|
||||
# CONFIG_NET_DSA_TAG_AR9331 is not set
|
||||
# CONFIG_NET_DSA_TAG_BRCM is not set
|
||||
# CONFIG_NET_DSA_TAG_BRCM_LEGACY is not set
|
||||
# CONFIG_NET_DSA_TAG_BRCM_PREPEND is not set
|
||||
# CONFIG_NET_DSA_TAG_DSA is not set
|
||||
# CONFIG_NET_DSA_TAG_EDSA is not set
|
||||
|
||||
@ -11,7 +11,7 @@ FEATURES:=fpu usb ext4 display rtc squashfs
|
||||
SUBTARGETS:=cortexa8 cortexa7 cortexa53
|
||||
|
||||
KERNEL_PATCHVER:=5.4
|
||||
KERNEL_TESTING_PATCHVER:=5.4
|
||||
KERNEL_TESTING_PATCHVER:=5.10
|
||||
KERNELNAME:=zImage dtbs
|
||||
|
||||
# A10: Cortex-A8
|
||||
|
||||
@ -11,8 +11,7 @@ friendlyarm,nanopi-r1)
|
||||
ucidef_set_interfaces_lan_wan "eth1" "eth0"
|
||||
;;
|
||||
lamobo,lamobo-r1)
|
||||
ucidef_add_switch "switch0" \
|
||||
"4:lan:1" "0:lan:2" "1:lan:3" "2:lan:4" "3:wan" "8@eth0"
|
||||
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" wan
|
||||
;;
|
||||
olimex,a20-olinuxino-micro)
|
||||
ucidef_set_interface_lan "wlan0"
|
||||
|
||||
15
target/linux/sunxi/base-files/etc/board.d/05_compat-version
Normal file
15
target/linux/sunxi/base-files/etc/board.d/05_compat-version
Normal file
@ -0,0 +1,15 @@
|
||||
|
||||
. /lib/functions.sh
|
||||
. /lib/functions/uci-defaults.sh
|
||||
|
||||
board_config_update
|
||||
|
||||
case "$(board_name)" in
|
||||
lamobo,lamobo-r1)
|
||||
ucidef_set_compat_version "1.1"
|
||||
;;
|
||||
esac
|
||||
|
||||
board_config_flush
|
||||
|
||||
exit 0
|
||||
@ -1,16 +0,0 @@
|
||||
do_b53_hack() {
|
||||
. /lib/functions.sh
|
||||
|
||||
# hack: enable switch on Lamobo R1 and reset counters
|
||||
case $(board_name) in
|
||||
lamobo,lamobo-r1)
|
||||
ip link set eth0 up
|
||||
sleep 1
|
||||
swconfig dev switch0 set reset 1
|
||||
swconfig dev switch0 set reset_mib 1
|
||||
swconfig dev switch0 set apply 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
boot_hook_add preinit_main do_b53_hack
|
||||
510
target/linux/sunxi/config-5.10
Normal file
510
target/linux/sunxi/config-5.10
Normal file
@ -0,0 +1,510 @@
|
||||
# CONFIG_AHCI_SUNXI is not set
|
||||
CONFIG_ALIGNMENT_TRAP=y
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
|
||||
CONFIG_ARCH_MULTIPLATFORM=y
|
||||
CONFIG_ARCH_MULTI_V6_V7=y
|
||||
CONFIG_ARCH_MULTI_V7=y
|
||||
CONFIG_ARCH_NR_GPIO=416
|
||||
CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
|
||||
CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
|
||||
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_ARCH_SPARSEMEM_ENABLE=y
|
||||
CONFIG_ARCH_SUNXI=y
|
||||
CONFIG_ARCH_SUNXI_MC_SMP=y
|
||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||
CONFIG_ARM=y
|
||||
# CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM is not set
|
||||
CONFIG_ARM_APPENDED_DTB=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
|
||||
CONFIG_ARM_ATAG_DTB_COMPAT=y
|
||||
CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
|
||||
CONFIG_ARM_CCI=y
|
||||
CONFIG_ARM_CCI400_COMMON=y
|
||||
CONFIG_ARM_CCI400_PORT_CTRL=y
|
||||
CONFIG_ARM_CPU_SUSPEND=y
|
||||
CONFIG_ARM_ERRATA_643719=y
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||
CONFIG_ARM_HEAVY_MB=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=6
|
||||
CONFIG_ARM_L1_CACHE_SHIFT_6=y
|
||||
CONFIG_ARM_LPAE=y
|
||||
CONFIG_ARM_PATCH_IDIV=y
|
||||
CONFIG_ARM_PATCH_PHYS_VIRT=y
|
||||
CONFIG_ARM_PSCI=y
|
||||
CONFIG_ARM_PSCI_FW=y
|
||||
CONFIG_ARM_THUMB=y
|
||||
CONFIG_ARM_UNWIND=y
|
||||
CONFIG_ARM_VIRT_EXT=y
|
||||
CONFIG_ATA=y
|
||||
CONFIG_ATAGS=y
|
||||
CONFIG_AUTO_ZRELADDR=y
|
||||
CONFIG_AXP20X_POWER=y
|
||||
CONFIG_BACKLIGHT_CLASS_DEVICE=y
|
||||
CONFIG_BACKLIGHT_PWM=y
|
||||
CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_BLK_PM=y
|
||||
CONFIG_BLK_SCSI_REQUEST=y
|
||||
CONFIG_BOUNCE=y
|
||||
CONFIG_CACHE_L2X0=y
|
||||
CONFIG_CAN=y
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_CLKSRC_MMIO=y
|
||||
CONFIG_CLK_SUNXI=y
|
||||
CONFIG_CLK_SUNXI_CLOCKS=y
|
||||
CONFIG_CLK_SUNXI_PRCM_SUN6I=y
|
||||
CONFIG_CLK_SUNXI_PRCM_SUN8I=y
|
||||
CONFIG_CLK_SUNXI_PRCM_SUN9I=y
|
||||
CONFIG_CLONE_BACKWARDS=y
|
||||
CONFIG_COMMON_CLK=y
|
||||
CONFIG_COMPAT_32BIT_TIME=y
|
||||
CONFIG_CONFIGFS_FS=y
|
||||
CONFIG_CONNECTOR=y
|
||||
CONFIG_CONSOLE_TRANSLATIONS=y
|
||||
CONFIG_COREDUMP=y
|
||||
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
|
||||
CONFIG_CPUFREQ_DT=y
|
||||
CONFIG_CPUFREQ_DT_PLATDEV=y
|
||||
CONFIG_CPU_32v6K=y
|
||||
CONFIG_CPU_32v7=y
|
||||
CONFIG_CPU_ABRT_EV7=y
|
||||
CONFIG_CPU_CACHE_V7=y
|
||||
CONFIG_CPU_CACHE_VIPT=y
|
||||
CONFIG_CPU_COPY_V6=y
|
||||
CONFIG_CPU_CP15=y
|
||||
CONFIG_CPU_CP15_MMU=y
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
|
||||
CONFIG_CPU_FREQ_GOV_COMMON=y
|
||||
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_STAT=y
|
||||
CONFIG_CPU_HAS_ASID=y
|
||||
CONFIG_CPU_PABRT_V7=y
|
||||
CONFIG_CPU_PM=y
|
||||
CONFIG_CPU_RMAP=y
|
||||
CONFIG_CPU_SPECTRE=y
|
||||
CONFIG_CPU_THERMAL=y
|
||||
CONFIG_CPU_THUMB_CAPABLE=y
|
||||
CONFIG_CPU_TLB_V7=y
|
||||
CONFIG_CPU_V7=y
|
||||
CONFIG_CRC16=y
|
||||
CONFIG_CRC_T10DIF=y
|
||||
CONFIG_CRYPTO_CRC32=y
|
||||
CONFIG_CRYPTO_CRC32C=y
|
||||
CONFIG_CRYPTO_CRCT10DIF=y
|
||||
CONFIG_CRYPTO_DES=y
|
||||
CONFIG_CRYPTO_DEV_ALLWINNER=y
|
||||
CONFIG_CRYPTO_DEV_SUN4I_SS=y
|
||||
CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y
|
||||
# CONFIG_CRYPTO_DEV_SUN8I_CE is not set
|
||||
# CONFIG_CRYPTO_DEV_SUN8I_SS is not set
|
||||
CONFIG_CRYPTO_GF128MUL=y
|
||||
CONFIG_CRYPTO_HW=y
|
||||
CONFIG_CRYPTO_LIB_DES=y
|
||||
CONFIG_CRYPTO_MD5=y
|
||||
CONFIG_CRYPTO_NULL2=y
|
||||
CONFIG_CRYPTO_RNG=y
|
||||
CONFIG_CRYPTO_RNG2=y
|
||||
CONFIG_CRYPTO_SHA1=y
|
||||
CONFIG_DCACHE_WORD_ACCESS=y
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
|
||||
CONFIG_DEBUG_MEMORY_INIT=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_DMA_ENGINE=y
|
||||
CONFIG_DMA_OF=y
|
||||
CONFIG_DMA_OPS=y
|
||||
CONFIG_DMA_REMAP=y
|
||||
CONFIG_DMA_SUN4I=y
|
||||
CONFIG_DMA_SUN6I=y
|
||||
CONFIG_DMA_VIRTUAL_CHANNELS=y
|
||||
CONFIG_DNOTIFY=y
|
||||
CONFIG_DTC=y
|
||||
CONFIG_DUMMY_CONSOLE=y
|
||||
CONFIG_DVB_CORE=y
|
||||
CONFIG_DWMAC_GENERIC=y
|
||||
# CONFIG_DWMAC_SUN8I is not set
|
||||
CONFIG_DWMAC_SUNXI=y
|
||||
CONFIG_DYNAMIC_DEBUG=y
|
||||
CONFIG_EDAC_ATOMIC_SCRUB=y
|
||||
CONFIG_EDAC_SUPPORT=y
|
||||
CONFIG_ELF_CORE=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXTCON=y
|
||||
CONFIG_F2FS_FS=y
|
||||
CONFIG_FAT_FS=y
|
||||
CONFIG_FB=y
|
||||
CONFIG_FB_CFB_COPYAREA=y
|
||||
CONFIG_FB_CFB_FILLRECT=y
|
||||
CONFIG_FB_CFB_IMAGEBLIT=y
|
||||
CONFIG_FB_CMDLINE=y
|
||||
CONFIG_FB_FOREIGN_ENDIAN=y
|
||||
CONFIG_FB_LITTLE_ENDIAN=y
|
||||
CONFIG_FB_MODE_HELPERS=y
|
||||
CONFIG_FB_SIMPLE=y
|
||||
CONFIG_FB_TILEBLITTING=y
|
||||
CONFIG_FIXED_PHY=y
|
||||
CONFIG_FIX_EARLYCON_MEM=y
|
||||
CONFIG_FONT_8x16=y
|
||||
CONFIG_FONT_8x8=y
|
||||
CONFIG_FONT_SUPPORT=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
|
||||
CONFIG_FRAME_WARN=2048
|
||||
CONFIG_FREEZER=y
|
||||
CONFIG_FS_IOMAP=y
|
||||
CONFIG_FS_MBCACHE=y
|
||||
CONFIG_FS_POSIX_ACL=y
|
||||
CONFIG_FW_CACHE=y
|
||||
CONFIG_FW_LOADER_PAGED_BUF=y
|
||||
CONFIG_GENERIC_ALLOCATOR=y
|
||||
CONFIG_GENERIC_ARCH_TOPOLOGY=y
|
||||
CONFIG_GENERIC_BUG=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
|
||||
CONFIG_GENERIC_CPU_AUTOPROBE=y
|
||||
CONFIG_GENERIC_EARLY_IOREMAP=y
|
||||
CONFIG_GENERIC_GETTIMEOFDAY=y
|
||||
CONFIG_GENERIC_IDLE_POLL_SETUP=y
|
||||
CONFIG_GENERIC_IRQ_CHIP=y
|
||||
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
|
||||
CONFIG_GENERIC_IRQ_MIGRATION=y
|
||||
CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
|
||||
CONFIG_GENERIC_IRQ_SHOW=y
|
||||
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
|
||||
CONFIG_GENERIC_PCI_IOMAP=y
|
||||
CONFIG_GENERIC_PHY=y
|
||||
CONFIG_GENERIC_PINCONF=y
|
||||
CONFIG_GENERIC_PINCTRL_GROUPS=y
|
||||
CONFIG_GENERIC_PINMUX_FUNCTIONS=y
|
||||
CONFIG_GENERIC_SCHED_CLOCK=y
|
||||
CONFIG_GENERIC_SMP_IDLE_THREAD=y
|
||||
CONFIG_GENERIC_STRNCPY_FROM_USER=y
|
||||
CONFIG_GENERIC_STRNLEN_USER=y
|
||||
CONFIG_GENERIC_TIME_VSYSCALL=y
|
||||
CONFIG_GENERIC_VDSO_32=y
|
||||
CONFIG_GLOB=y
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HARDEN_BRANCH_PREDICTOR=y
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT_MAP=y
|
||||
CONFIG_HAVE_SMP=y
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_HIGHPTE=y
|
||||
CONFIG_HOTPLUG_CPU=y
|
||||
CONFIG_HWMON=y
|
||||
CONFIG_HW_CONSOLE=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_HW_RANDOM_TIMERIOMEM=y
|
||||
CONFIG_HZ_FIXED=0
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_BOARDINFO=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_COMPAT=y
|
||||
CONFIG_I2C_HELPER_AUTO=y
|
||||
CONFIG_I2C_MV64XXX=y
|
||||
CONFIG_I2C_SUN6I_P2WI=y
|
||||
CONFIG_IIO=y
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_INPUT=y
|
||||
CONFIG_INPUT_AXP20X_PEK=y
|
||||
CONFIG_INPUT_KEYBOARD=y
|
||||
CONFIG_INPUT_MOUSEDEV=y
|
||||
CONFIG_INPUT_MOUSEDEV_PSAUX=y
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
|
||||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
CONFIG_IRQCHIP=y
|
||||
CONFIG_IRQ_DOMAIN=y
|
||||
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
||||
CONFIG_IRQ_FORCED_THREADING=y
|
||||
CONFIG_IRQ_WORK=y
|
||||
CONFIG_JBD2=y
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KEYBOARD_SUN4I_LRADC=y
|
||||
CONFIG_KSM=y
|
||||
CONFIG_LCD_CLASS_DEVICE=y
|
||||
CONFIG_LCD_PLATFORM=y
|
||||
CONFIG_LEDS_GPIO=y
|
||||
CONFIG_LIBFDT=y
|
||||
CONFIG_LLD_VERSION=0
|
||||
CONFIG_LOCK_DEBUGGING_SUPPORT=y
|
||||
CONFIG_LOCK_SPIN_ON_OWNER=y
|
||||
CONFIG_LOGO=y
|
||||
CONFIG_LOGO_LINUX_CLUT224=y
|
||||
CONFIG_LOGO_LINUX_MONO=y
|
||||
CONFIG_LOGO_LINUX_VGA16=y
|
||||
CONFIG_MACH_SUN4I=y
|
||||
CONFIG_MACH_SUN5I=y
|
||||
CONFIG_MACH_SUN6I=y
|
||||
CONFIG_MACH_SUN7I=y
|
||||
CONFIG_MACH_SUN8I=y
|
||||
CONFIG_MACH_SUN9I=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_MDIO_BUS=y
|
||||
CONFIG_MDIO_DEVICE=y
|
||||
CONFIG_MDIO_DEVRES=y
|
||||
CONFIG_MDIO_SUN4I=y
|
||||
CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
|
||||
CONFIG_MEDIA_ATTACH=y
|
||||
CONFIG_MEDIA_CAMERA_SUPPORT=y
|
||||
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
|
||||
CONFIG_MEDIA_PLATFORM_SUPPORT=y
|
||||
CONFIG_MEDIA_RADIO_SUPPORT=y
|
||||
CONFIG_MEDIA_SDR_SUPPORT=y
|
||||
CONFIG_MEDIA_SUPPORT=y
|
||||
CONFIG_MEDIA_TEST_SUPPORT=y
|
||||
CONFIG_MEDIA_TUNER=y
|
||||
CONFIG_MEMFD_CREATE=y
|
||||
CONFIG_MFD_AXP20X=y
|
||||
CONFIG_MFD_AXP20X_I2C=y
|
||||
CONFIG_MFD_AXP20X_RSB=y
|
||||
CONFIG_MFD_CORE=y
|
||||
CONFIG_MFD_SUN6I_PRCM=y
|
||||
CONFIG_MFD_SYSCON=y
|
||||
CONFIG_MIGHT_HAVE_CACHE_L2X0=y
|
||||
CONFIG_MIGRATION=y
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_BLOCK=y
|
||||
CONFIG_MMC_SUNXI=y
|
||||
CONFIG_MODULES_USE_ELF_REL=y
|
||||
CONFIG_MTD_JEDECPROBE=y
|
||||
CONFIG_MTD_SPI_NOR=y
|
||||
CONFIG_MTD_SPLIT_FIT_FW=y
|
||||
CONFIG_MUTEX_SPIN_ON_OWNER=y
|
||||
CONFIG_NEED_DMA_MAP_STATE=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_NET_FLOW_LIMIT=y
|
||||
CONFIG_NET_PTP_CLASSIFY=y
|
||||
CONFIG_NET_VENDOR_ALLWINNER=y
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_NO_HZ_COMMON=y
|
||||
CONFIG_NO_HZ_IDLE=y
|
||||
CONFIG_NR_CPUS=8
|
||||
CONFIG_NVMEM=y
|
||||
CONFIG_NVMEM_SUNXI_SID=y
|
||||
CONFIG_OF=y
|
||||
CONFIG_OF_ADDRESS=y
|
||||
CONFIG_OF_EARLY_FLATTREE=y
|
||||
CONFIG_OF_FLATTREE=y
|
||||
CONFIG_OF_GPIO=y
|
||||
CONFIG_OF_IRQ=y
|
||||
CONFIG_OF_KOBJ=y
|
||||
CONFIG_OF_MDIO=y
|
||||
CONFIG_OF_NET=y
|
||||
CONFIG_OLD_SIGACTION=y
|
||||
CONFIG_OLD_SIGSUSPEND3=y
|
||||
CONFIG_OUTER_CACHE=y
|
||||
CONFIG_OUTER_CACHE_SYNC=y
|
||||
CONFIG_PADATA=y
|
||||
CONFIG_PAGE_OFFSET=0xC0000000
|
||||
CONFIG_PAGE_POOL=y
|
||||
CONFIG_PCS_XPCS=y
|
||||
CONFIG_PERF_USE_VMALLOC=y
|
||||
CONFIG_PGTABLE_LEVELS=3
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_PHYLINK=y
|
||||
CONFIG_PHYS_ADDR_T_64BIT=y
|
||||
CONFIG_PHY_SUN4I_USB=y
|
||||
# CONFIG_PHY_SUN50I_USB3 is not set
|
||||
# CONFIG_PHY_SUN6I_MIPI_DPHY is not set
|
||||
CONFIG_PHY_SUN9I_USB=y
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_AXP209=y
|
||||
CONFIG_PINCTRL_SUN4I_A10=y
|
||||
# CONFIG_PINCTRL_SUN50I_A100 is not set
|
||||
# CONFIG_PINCTRL_SUN50I_A100_R is not set
|
||||
# CONFIG_PINCTRL_SUN50I_A64 is not set
|
||||
# CONFIG_PINCTRL_SUN50I_A64_R is not set
|
||||
# CONFIG_PINCTRL_SUN50I_H5 is not set
|
||||
# CONFIG_PINCTRL_SUN50I_H6 is not set
|
||||
# CONFIG_PINCTRL_SUN50I_H6_R is not set
|
||||
CONFIG_PINCTRL_SUN5I=y
|
||||
CONFIG_PINCTRL_SUN6I_A31=y
|
||||
CONFIG_PINCTRL_SUN6I_A31_R=y
|
||||
CONFIG_PINCTRL_SUN8I_A23=y
|
||||
CONFIG_PINCTRL_SUN8I_A23_R=y
|
||||
CONFIG_PINCTRL_SUN8I_A33=y
|
||||
CONFIG_PINCTRL_SUN8I_A83T=y
|
||||
CONFIG_PINCTRL_SUN8I_A83T_R=y
|
||||
CONFIG_PINCTRL_SUN8I_H3=y
|
||||
CONFIG_PINCTRL_SUN8I_H3_R=y
|
||||
CONFIG_PINCTRL_SUN8I_V3S=y
|
||||
CONFIG_PINCTRL_SUN9I_A80=y
|
||||
CONFIG_PINCTRL_SUN9I_A80_R=y
|
||||
CONFIG_PINCTRL_SUNXI=y
|
||||
CONFIG_PM=y
|
||||
CONFIG_PM_CLK=y
|
||||
CONFIG_PM_OPP=y
|
||||
CONFIG_PM_SLEEP=y
|
||||
CONFIG_PM_SLEEP_SMP=y
|
||||
CONFIG_POWER_RESET=y
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
CONFIG_PPS=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_PROC_EVENTS=y
|
||||
CONFIG_PROC_PAGE_MONITOR=y
|
||||
CONFIG_PTP_1588_CLOCK=y
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_SUN4I=y
|
||||
CONFIG_PWM_SYSFS=y
|
||||
CONFIG_RATIONAL=y
|
||||
CONFIG_REALTEK_PHY=y
|
||||
CONFIG_REGMAP=y
|
||||
CONFIG_REGMAP_I2C=y
|
||||
CONFIG_REGMAP_IRQ=y
|
||||
CONFIG_REGMAP_MMIO=y
|
||||
CONFIG_REGMAP_SPI=y
|
||||
CONFIG_REGULATOR=y
|
||||
CONFIG_REGULATOR_AXP20X=y
|
||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
CONFIG_REGULATOR_GPIO=y
|
||||
CONFIG_REGULATOR_SY8106A=y
|
||||
CONFIG_RELAY=y
|
||||
CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_RESET_SIMPLE=y
|
||||
CONFIG_RESET_SUNXI=y
|
||||
CONFIG_RFS_ACCEL=y
|
||||
CONFIG_RPS=y
|
||||
CONFIG_RWSEM_SPIN_ON_OWNER=y
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SDIO_UART=y
|
||||
CONFIG_SECURITYFS=y
|
||||
CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
|
||||
CONFIG_SERIAL_8250_DW=y
|
||||
CONFIG_SERIAL_8250_DWLIB=y
|
||||
CONFIG_SERIAL_8250_FSL=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=8
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=8
|
||||
CONFIG_SERIAL_MCTRL_GPIO=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_SERIO=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
CONFIG_SG_POOL=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_SMP_ON_UP=y
|
||||
CONFIG_SND=y
|
||||
CONFIG_SND_COMPRESS_OFFLOAD=y
|
||||
CONFIG_SND_JACK=y
|
||||
CONFIG_SND_JACK_INPUT_DEV=y
|
||||
CONFIG_SND_PCM=y
|
||||
CONFIG_SND_SIMPLE_CARD=y
|
||||
CONFIG_SND_SIMPLE_CARD_UTILS=y
|
||||
CONFIG_SND_SOC=y
|
||||
CONFIG_SND_SOC_I2C_AND_SPI=y
|
||||
# CONFIG_SND_SUN4I_I2S is not set
|
||||
# CONFIG_SND_SUN4I_SPDIF is not set
|
||||
# CONFIG_SND_SUN8I_CODEC is not set
|
||||
# CONFIG_SND_SUN8I_CODEC_ANALOG is not set
|
||||
CONFIG_SOUND=y
|
||||
CONFIG_SOUND_OSS_CORE=y
|
||||
CONFIG_SPARSE_IRQ=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_MASTER=y
|
||||
CONFIG_SPI_MEM=y
|
||||
CONFIG_SPI_SUN4I=y
|
||||
CONFIG_SPI_SUN6I=y
|
||||
CONFIG_SRCU=y
|
||||
CONFIG_STMMAC_ETH=y
|
||||
CONFIG_STMMAC_PLATFORM=y
|
||||
# CONFIG_STMMAC_SELFTESTS is not set
|
||||
CONFIG_SUN4I_A10_CCU=y
|
||||
# CONFIG_SUN4I_EMAC is not set
|
||||
CONFIG_SUN4I_TIMER=y
|
||||
CONFIG_SUN5I_CCU=y
|
||||
CONFIG_SUN5I_HSTIMER=y
|
||||
CONFIG_SUN6I_A31_CCU=y
|
||||
CONFIG_SUN8I_A23_CCU=y
|
||||
CONFIG_SUN8I_A33_CCU=y
|
||||
CONFIG_SUN8I_A83T_CCU=y
|
||||
CONFIG_SUN8I_DE2_CCU=y
|
||||
CONFIG_SUN8I_H3_CCU=y
|
||||
CONFIG_SUN8I_R40_CCU=y
|
||||
CONFIG_SUN8I_R_CCU=y
|
||||
# CONFIG_SUN8I_THERMAL is not set
|
||||
CONFIG_SUN8I_V3S_CCU=y
|
||||
CONFIG_SUN9I_A80_CCU=y
|
||||
CONFIG_SUNXI_CCU=y
|
||||
CONFIG_SUNXI_RSB=y
|
||||
CONFIG_SUNXI_SRAM=y
|
||||
CONFIG_SUNXI_WATCHDOG=y
|
||||
CONFIG_SUSPEND=y
|
||||
CONFIG_SUSPEND_FREEZER=y
|
||||
CONFIG_SWIOTLB=y
|
||||
CONFIG_SWPHY=y
|
||||
CONFIG_SWP_EMULATE=y
|
||||
CONFIG_SYSFS_SYSCALL=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_SYS_SUPPORTS_HUGETLBFS=y
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
|
||||
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
|
||||
CONFIG_THERMAL_GOV_STEP_WISE=y
|
||||
CONFIG_THERMAL_HWMON=y
|
||||
CONFIG_THERMAL_OF=y
|
||||
CONFIG_TICK_CPU_ACCOUNTING=y
|
||||
CONFIG_TIMER_OF=y
|
||||
CONFIG_TIMER_PROBE=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_TOUCHSCREEN_PROPERTIES=y
|
||||
CONFIG_TOUCHSCREEN_SUN4I=y
|
||||
CONFIG_TREE_RCU=y
|
||||
CONFIG_TREE_SRCU=y
|
||||
CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
|
||||
CONFIG_UNWINDER_ARM=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||
# CONFIG_USB_AUDIO is not set
|
||||
CONFIG_USB_COMMON=y
|
||||
CONFIG_USB_DWC2=y
|
||||
CONFIG_USB_DWC2_HOST=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_EHCI_HCD_PLATFORM=y
|
||||
# CONFIG_USB_ETH is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_NET_DRIVERS=y
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
CONFIG_USB_OHCI_HCD_PLATFORM=y
|
||||
CONFIG_USB_ROLE_SWITCH=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_USB_SUPPORT=y
|
||||
CONFIG_USERIO=y
|
||||
CONFIG_USE_OF=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
CONFIG_VHOST=y
|
||||
CONFIG_VHOST_IOTLB=y
|
||||
CONFIG_VHOST_NET=y
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_VT=y
|
||||
CONFIG_VT_CONSOLE=y
|
||||
CONFIG_VT_CONSOLE_SLEEP=y
|
||||
CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||
CONFIG_WATCHDOG_CORE=y
|
||||
CONFIG_XPS=y
|
||||
CONFIG_XXHASH=y
|
||||
CONFIG_XZ_DEC_ARM=y
|
||||
CONFIG_XZ_DEC_BCJ=y
|
||||
CONFIG_ZBOOT_ROM_BSS=0
|
||||
CONFIG_ZBOOT_ROM_TEXT=0
|
||||
@ -523,10 +523,6 @@ CONFIG_SUNXI_SRAM=y
|
||||
CONFIG_SUNXI_WATCHDOG=y
|
||||
CONFIG_SUSPEND=y
|
||||
CONFIG_SUSPEND_FREEZER=y
|
||||
CONFIG_SWCONFIG=y
|
||||
CONFIG_SWCONFIG_B53=y
|
||||
CONFIG_SWCONFIG_B53_PHY_DRIVER=y
|
||||
CONFIG_SWCONFIG_B53_PHY_FIXUP=y
|
||||
CONFIG_SWIOTLB=y
|
||||
CONFIG_SWPHY=y
|
||||
CONFIG_SWP_EMULATE=y
|
||||
|
||||
161
target/linux/sunxi/cortexa53/config-5.10
Normal file
161
target/linux/sunxi/cortexa53/config-5.10
Normal file
@ -0,0 +1,161 @@
|
||||
CONFIG_64BIT=y
|
||||
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
|
||||
CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
|
||||
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
|
||||
CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
|
||||
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
|
||||
CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
|
||||
CONFIG_ARCH_HAS_PTE_DEVMAP=y
|
||||
CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
|
||||
CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
|
||||
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
|
||||
CONFIG_ARCH_INLINE_READ_LOCK=y
|
||||
CONFIG_ARCH_INLINE_READ_LOCK_BH=y
|
||||
CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y
|
||||
CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y
|
||||
CONFIG_ARCH_INLINE_READ_UNLOCK=y
|
||||
CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y
|
||||
CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y
|
||||
CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y
|
||||
CONFIG_ARCH_INLINE_SPIN_LOCK=y
|
||||
CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y
|
||||
CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y
|
||||
CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y
|
||||
CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y
|
||||
CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y
|
||||
CONFIG_ARCH_INLINE_SPIN_UNLOCK=y
|
||||
CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y
|
||||
CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y
|
||||
CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y
|
||||
CONFIG_ARCH_INLINE_WRITE_LOCK=y
|
||||
CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y
|
||||
CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y
|
||||
CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y
|
||||
CONFIG_ARCH_INLINE_WRITE_UNLOCK=y
|
||||
CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y
|
||||
CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y
|
||||
CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y
|
||||
CONFIG_ARCH_MMAP_RND_BITS=18
|
||||
CONFIG_ARCH_MMAP_RND_BITS_MAX=24
|
||||
CONFIG_ARCH_MMAP_RND_BITS_MIN=18
|
||||
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
|
||||
CONFIG_ARCH_PROC_KCORE_TEXT=y
|
||||
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
|
||||
CONFIG_ARCH_SPARSEMEM_ENABLE=y
|
||||
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
|
||||
CONFIG_ARCH_SUPPORTS_INT128=y
|
||||
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
|
||||
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
|
||||
CONFIG_ARCH_USE_MEMREMAP_PROT=y
|
||||
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
|
||||
CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
|
||||
CONFIG_ARCH_WANT_FRAME_POINTERS=y
|
||||
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
|
||||
CONFIG_ARM64=y
|
||||
CONFIG_ARM64_4K_PAGES=y
|
||||
CONFIG_ARM64_CONT_SHIFT=4
|
||||
CONFIG_ARM64_ERRATUM_1165522=y
|
||||
CONFIG_ARM64_ERRATUM_1286807=y
|
||||
CONFIG_ARM64_PAGE_SHIFT=12
|
||||
CONFIG_ARM64_PA_BITS=48
|
||||
CONFIG_ARM64_PA_BITS_48=y
|
||||
CONFIG_ARM64_SSBD=y
|
||||
CONFIG_ARM64_TAGGED_ADDR_ABI=y
|
||||
CONFIG_ARM64_VA_BITS=39
|
||||
CONFIG_ARM64_VA_BITS_39=y
|
||||
CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y
|
||||
CONFIG_ARM_AMBA=y
|
||||
CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
|
||||
CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
|
||||
CONFIG_CAVIUM_TX2_ERRATUM_219=y
|
||||
CONFIG_DMA_DIRECT_REMAP=y
|
||||
CONFIG_DRM_RCAR_WRITEBACK=y
|
||||
CONFIG_DWMAC_SUN8I=y
|
||||
CONFIG_EFI_EARLYCON=y
|
||||
# CONFIG_FLATMEM_MANUAL is not set
|
||||
CONFIG_FRAME_POINTER=y
|
||||
CONFIG_FUJITSU_ERRATUM_010001=y
|
||||
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
|
||||
CONFIG_GENERIC_CPU_VULNERABILITIES=y
|
||||
CONFIG_GENERIC_CSUM=y
|
||||
CONFIG_GENERIC_GETTIMEOFDAY=y
|
||||
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
|
||||
CONFIG_HAVE_ARCH_HUGE_VMAP=y
|
||||
CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
|
||||
CONFIG_HAVE_ARCH_KASAN=y
|
||||
CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y
|
||||
CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
|
||||
CONFIG_HAVE_ARCH_STACKLEAK=y
|
||||
CONFIG_HAVE_ARCH_VMAP_STACK=y
|
||||
CONFIG_HAVE_ASM_MODVERSIONS=y
|
||||
CONFIG_HAVE_CMPXCHG_DOUBLE=y
|
||||
CONFIG_HAVE_CMPXCHG_LOCAL=y
|
||||
CONFIG_HAVE_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
|
||||
CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
|
||||
CONFIG_HAVE_GENERIC_VDSO=y
|
||||
CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y
|
||||
CONFIG_HAVE_MEMORY_PRESENT=y
|
||||
CONFIG_HAVE_PATA_PLATFORM=y
|
||||
CONFIG_HOLES_IN_ZONE=y
|
||||
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
|
||||
CONFIG_INLINE_READ_LOCK=y
|
||||
CONFIG_INLINE_READ_LOCK_BH=y
|
||||
CONFIG_INLINE_READ_LOCK_IRQ=y
|
||||
CONFIG_INLINE_READ_LOCK_IRQSAVE=y
|
||||
CONFIG_INLINE_READ_UNLOCK_BH=y
|
||||
CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y
|
||||
CONFIG_INLINE_SPIN_LOCK=y
|
||||
CONFIG_INLINE_SPIN_LOCK_BH=y
|
||||
CONFIG_INLINE_SPIN_LOCK_IRQ=y
|
||||
CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y
|
||||
CONFIG_INLINE_SPIN_TRYLOCK=y
|
||||
CONFIG_INLINE_SPIN_TRYLOCK_BH=y
|
||||
CONFIG_INLINE_SPIN_UNLOCK_BH=y
|
||||
CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y
|
||||
CONFIG_INLINE_WRITE_LOCK=y
|
||||
CONFIG_INLINE_WRITE_LOCK_BH=y
|
||||
CONFIG_INLINE_WRITE_LOCK_IRQ=y
|
||||
CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y
|
||||
CONFIG_INLINE_WRITE_UNLOCK_BH=y
|
||||
CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y
|
||||
CONFIG_KVM_ARM_PMU=y
|
||||
CONFIG_KVM_INDIRECT_VECTORS=y
|
||||
CONFIG_MDIO_BUS_MUX=y
|
||||
CONFIG_MICREL_PHY=y
|
||||
CONFIG_MODULES_USE_ELF_RELA=y
|
||||
CONFIG_MUSB_PIO_ONLY=y
|
||||
CONFIG_NEED_SG_DMA_LENGTH=y
|
||||
CONFIG_NO_IOPORT_MAP=y
|
||||
CONFIG_NOP_USB_XCEIV=y
|
||||
CONFIG_PINCTRL_SUN50I_A64=y
|
||||
CONFIG_PINCTRL_SUN50I_A64_R=y
|
||||
CONFIG_PINCTRL_SUN50I_H5=y
|
||||
CONFIG_PINCTRL_SUN50I_H6=y
|
||||
CONFIG_PINCTRL_SUN50I_H6_R=y
|
||||
CONFIG_QUEUED_RWLOCKS=y
|
||||
CONFIG_QUEUED_SPINLOCKS=y
|
||||
CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
|
||||
# CONFIG_SND_SUN50I_CODEC_ANALOG is not set
|
||||
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
|
||||
CONFIG_SPARSEMEM=y
|
||||
CONFIG_SPARSEMEM_EXTREME=y
|
||||
CONFIG_SPARSEMEM_MANUAL=y
|
||||
CONFIG_SPARSEMEM_VMEMMAP=y
|
||||
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
|
||||
CONFIG_SUN50I_A64_CCU=y
|
||||
CONFIG_SUN50I_DE2_BUS=y
|
||||
CONFIG_SUN50I_ERRATUM_UNKNOWN1=y
|
||||
CONFIG_SUN50I_H6_CCU=y
|
||||
CONFIG_SUN50I_H6_R_CCU=y
|
||||
CONFIG_SYSCTL_EXCEPTION_TRACE=y
|
||||
CONFIG_THREAD_INFO_IN_TASK=y
|
||||
CONFIG_UNMAP_KERNEL_AT_EL0=y
|
||||
CONFIG_USB_MUSB_DUAL_ROLE=y
|
||||
# CONFIG_USB_MUSB_GADGET is not set
|
||||
CONFIG_USB_MUSB_HDRC=y
|
||||
# CONFIG_USB_MUSB_HOST is not set
|
||||
CONFIG_USB_MUSB_SUNXI=y
|
||||
CONFIG_VMAP_STACK=y
|
||||
CONFIG_ZONE_DMA32=y
|
||||
36
target/linux/sunxi/cortexa7/config-5.10
Normal file
36
target/linux/sunxi/cortexa7/config-5.10
Normal file
@ -0,0 +1,36 @@
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_HAS_BINFMT_FLAT=y
|
||||
CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
|
||||
CONFIG_B53=y
|
||||
CONFIG_B53_MDIO_DRIVER=y
|
||||
# CONFIG_B53_MMAP_DRIVER is not set
|
||||
# CONFIG_B53_SERDES is not set
|
||||
# CONFIG_B53_SPI_DRIVER is not set
|
||||
# CONFIG_B53_SRAB_DRIVER is not set
|
||||
CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
|
||||
CONFIG_COMPAT_32BIT_TIME=y
|
||||
CONFIG_DWMAC_SUN8I=y
|
||||
CONFIG_GRO_CELLS=y
|
||||
# CONFIG_MACH_SUN4I is not set
|
||||
# CONFIG_MACH_SUN5I is not set
|
||||
CONFIG_MDIO_BUS_MUX=y
|
||||
CONFIG_MUSB_PIO_ONLY=y
|
||||
CONFIG_NET_DEVLINK=y
|
||||
CONFIG_NET_DSA=y
|
||||
CONFIG_NET_DSA_TAG_BRCM=y
|
||||
CONFIG_NET_DSA_TAG_BRCM_COMMON=y
|
||||
CONFIG_NET_DSA_TAG_BRCM_PREPEND=y
|
||||
CONFIG_NET_SWITCHDEV=y
|
||||
CONFIG_NOP_USB_XCEIV=y
|
||||
# CONFIG_PINCTRL_SUN50I_A64 is not set
|
||||
# CONFIG_PINCTRL_SUN50I_A64_R is not set
|
||||
# CONFIG_PINCTRL_SUN50I_H5 is not set
|
||||
# CONFIG_PINCTRL_SUN50I_H6 is not set
|
||||
# CONFIG_PINCTRL_SUN50I_H6_R is not set
|
||||
CONFIG_UNWINDER_ARM=y
|
||||
CONFIG_USB_MUSB_DUAL_ROLE=y
|
||||
# CONFIG_USB_MUSB_GADGET is not set
|
||||
CONFIG_USB_MUSB_HDRC=y
|
||||
# CONFIG_USB_MUSB_HOST is not set
|
||||
CONFIG_USB_MUSB_SUNXI=y
|
||||
CONFIG_USB_PHY=y
|
||||
@ -21,3 +21,15 @@ CONFIG_USB_MUSB_HDRC=y
|
||||
# CONFIG_USB_MUSB_HOST is not set
|
||||
CONFIG_USB_MUSB_SUNXI=y
|
||||
CONFIG_USB_PHY=y
|
||||
CONFIG_NET_DEVLINK=y
|
||||
CONFIG_NET_DSA=y
|
||||
CONFIG_NET_DSA_TAG_BRCM=y
|
||||
CONFIG_NET_DSA_TAG_BRCM_COMMON=y
|
||||
CONFIG_NET_DSA_TAG_BRCM_PREPEND=y
|
||||
CONFIG_NET_SWITCHDEV=y
|
||||
CONFIG_B53=y
|
||||
CONFIG_B53_MDIO_DRIVER=y
|
||||
# CONFIG_B53_MMAP_DRIVER is not set
|
||||
# CONFIG_B53_SERDES is not set
|
||||
# CONFIG_B53_SPI_DRIVER is not set
|
||||
# CONFIG_B53_SRAB_DRIVER is not set
|
||||
|
||||
20
target/linux/sunxi/cortexa8/config-5.10
Normal file
20
target/linux/sunxi/cortexa8/config-5.10
Normal file
@ -0,0 +1,20 @@
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_HAS_BINFMT_FLAT=y
|
||||
CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
|
||||
# CONFIG_ARM_LPAE is not set
|
||||
CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
|
||||
CONFIG_COMPAT_32BIT_TIME=y
|
||||
# CONFIG_MACH_SUN6I is not set
|
||||
# CONFIG_MACH_SUN7I is not set
|
||||
# CONFIG_MACH_SUN8I is not set
|
||||
# CONFIG_MACH_SUN9I is not set
|
||||
CONFIG_PGTABLE_LEVELS=2
|
||||
# CONFIG_PHY_SUN9I_USB is not set
|
||||
# CONFIG_PINCTRL_SUN50I_A64 is not set
|
||||
# CONFIG_PINCTRL_SUN50I_A64_R is not set
|
||||
# CONFIG_PINCTRL_SUN50I_H5 is not set
|
||||
# CONFIG_PINCTRL_SUN50I_H6 is not set
|
||||
# CONFIG_PINCTRL_SUN50I_H6_R is not set
|
||||
# CONFIG_SPI_SUN6I is not set
|
||||
# CONFIG_SUN8I_A83T_CCU is not set
|
||||
CONFIG_UNWINDER_ARM=y
|
||||
@ -64,7 +64,11 @@ TARGET_DEVICES += friendlyarm_zeropi
|
||||
define Device/lamobo_lamobo-r1
|
||||
DEVICE_VENDOR := Lamobo
|
||||
DEVICE_MODEL := Lamobo R1
|
||||
DEVICE_PACKAGES:=kmod-ata-sunxi kmod-rtl8192cu swconfig wpad-basic-wolfssl
|
||||
DEVICE_ALT0_VENDOR := Bananapi
|
||||
DEVICE_ALT0_MODEL := BPi-R1
|
||||
DEVICE_PACKAGES := kmod-ata-sunxi kmod-rtl8192cu wpad-basic-wolfssl
|
||||
DEVICE_COMPAT_VERSION := 1.1
|
||||
DEVICE_COMPAT_MESSAGE := Config cannot be migrated from swconfig to DSA
|
||||
SOC := sun7i-a20
|
||||
endef
|
||||
TARGET_DEVICES += lamobo_lamobo-r1
|
||||
|
||||
@ -0,0 +1,79 @@
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -1202,6 +1202,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
|
||||
sun8i-h3-orangepi-zero-plus2.dtb \
|
||||
sun8i-h3-rervision-dvk.dtb \
|
||||
sun8i-h3-emlid-neutis-n5h3-devboard.dtb \
|
||||
+ sun8i-h3-zeropi.dtb \
|
||||
sun8i-r16-bananapi-m2m.dtb \
|
||||
sun8i-r16-nintendo-nes-classic.dtb \
|
||||
sun8i-r16-nintendo-super-nes-classic.dtb \
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/sun8i-h3-zeropi.dts
|
||||
@@ -0,0 +1,66 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+
|
||||
+#include "sun8i-h3-nanopi.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "FriendlyElec ZeroPi";
|
||||
+ compatible = "friendlyarm,zeropi", "allwinner,sun8i-h3";
|
||||
+
|
||||
+ aliases {
|
||||
+ ethernet0 = &emac;
|
||||
+ };
|
||||
+
|
||||
+ reg_gmac_3v3: gmac-3v3 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&gmac_power_pin_nanopi>;
|
||||
+ regulator-name = "gmac-3v3";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ startup-delay-us = <100000>;
|
||||
+ enable-active-high;
|
||||
+ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&ehci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ohci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pio {
|
||||
+ gmac_power_pin_nanopi: gmac_power_pin@0 {
|
||||
+ pins = "PD6";
|
||||
+ function = "gpio_out";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&external_mdio {
|
||||
+ ext_rgmii_phy: ethernet-phy@1 {
|
||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <7>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&emac {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&emac_rgmii_pins>;
|
||||
+ phy-supply = <®_gmac_3v3>;
|
||||
+ phy-handle = <&ext_rgmii_phy>;
|
||||
+ phy-mode = "rgmii";
|
||||
+
|
||||
+ allwinner,leds-active-low;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_otg {
|
||||
+ status = "okay";
|
||||
+ dr_mode = "peripheral";
|
||||
+};
|
||||
+
|
||||
+&usbphy {
|
||||
+ usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
|
||||
+};
|
||||
@ -0,0 +1,186 @@
|
||||
From 5aee0b1272cd5b42933ef629d66b677669e2e8d2 Mon Sep 17 00:00:00 2001
|
||||
From: Jayantajit Gogoi <jayanta.gogoi525@gmail.com>
|
||||
Date: Mon, 12 Oct 2020 05:24:51 +0000
|
||||
Subject: [PATCH] sunxi: add support for friendlyarm nanopi r1
|
||||
|
||||
Signed-off-by: Jayantajit Gogoi <jayanta.gogoi525@gmail.com>
|
||||
---
|
||||
.../devicetree/bindings/arm/sunxi.yaml | 5 +
|
||||
arch/arm/boot/dts/Makefile | 1 +
|
||||
arch/arm/boot/dts/sun8i-h3-nanopi-r1.dts | 146 ++++++++++++++++++
|
||||
3 files changed, 152 insertions(+)
|
||||
create mode 100644 arch/arm/boot/dts/sun8i-h3-nanopi-r1.dts
|
||||
|
||||
--- a/Documentation/devicetree/bindings/arm/sunxi.yaml
|
||||
+++ b/Documentation/devicetree/bindings/arm/sunxi.yaml
|
||||
@@ -251,6 +251,11 @@ properties:
|
||||
- const: friendlyarm,nanopi-neo-plus2
|
||||
- const: allwinner,sun50i-h5
|
||||
|
||||
+ - description: FriendlyARM NanoPi R1
|
||||
+ items:
|
||||
+ - const: friendlyarm,nanopi-r1
|
||||
+ - const: allwinner,sun8i-h3
|
||||
+
|
||||
- description: Gemei G9 Tablet
|
||||
items:
|
||||
- const: gemei,g9
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -1192,6 +1192,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
|
||||
sun8i-h3-nanopi-m1-plus.dtb \
|
||||
sun8i-h3-nanopi-neo.dtb \
|
||||
sun8i-h3-nanopi-neo-air.dtb \
|
||||
+ sun8i-h3-nanopi-r1.dtb \
|
||||
sun8i-h3-orangepi-2.dtb \
|
||||
sun8i-h3-orangepi-lite.dtb \
|
||||
sun8i-h3-orangepi-one.dtb \
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi-r1.dts
|
||||
@@ -0,0 +1,146 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (C) 2019 Igor Pecovnik <igor@armbian.com>
|
||||
+ * Copyright (C) 2020 Jayantajit Gogoi <jayanta.gogoi525@gmail.com>
|
||||
+ */
|
||||
+
|
||||
+/* NanoPi R1 is based on the NanoPi-H3 design from FriendlyARM */
|
||||
+#include "sun8i-h3-nanopi.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "FriendlyARM NanoPi R1";
|
||||
+ compatible = "friendlyarm,nanopi-r1", "allwinner,sun8i-h3";
|
||||
+
|
||||
+ reg_gmac_3v3: gmac-3v3 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "gmac-3v3";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ startup-delay-us = <100000>;
|
||||
+ enable-active-high;
|
||||
+ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+
|
||||
+ vdd_cpux: gpio-regulator {
|
||||
+ compatible = "regulator-gpio";
|
||||
+ pinctrl-names = "default";
|
||||
+ regulator-name = "vdd-cpux";
|
||||
+ regulator-type = "voltage";
|
||||
+ regulator-boot-on;
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1300000>;
|
||||
+ regulator-ramp-delay = <50>;
|
||||
+ gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>;
|
||||
+ gpios-states = <0x1>;
|
||||
+ states = <1100000 0x0
|
||||
+ 1300000 0x1>;
|
||||
+ };
|
||||
+
|
||||
+ wifi_pwrseq: wifi_pwrseq {
|
||||
+ compatible = "mmc-pwrseq-simple";
|
||||
+ pinctrl-names = "default";
|
||||
+ reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+
|
||||
+ leds {
|
||||
+ /delete-node/ pwr;
|
||||
+ status {
|
||||
+ label = "nanopi:red:status";
|
||||
+ gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>;
|
||||
+ linux,default-trigger = "heartbeat";
|
||||
+ };
|
||||
+
|
||||
+ wan {
|
||||
+ label = "nanopi:green:wan";
|
||||
+ gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+
|
||||
+ lan {
|
||||
+ label = "nanopi:green:lan";
|
||||
+ gpios = <&pio 0 9 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ r_gpio_keys {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&sw_r_npi>;
|
||||
+
|
||||
+ /delete-node/ k1;
|
||||
+ reset {
|
||||
+ label = "reset";
|
||||
+ linux,code = <KEY_RESTART>;
|
||||
+ gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&cpu0 {
|
||||
+ cpu-supply = <&vdd_cpux>;
|
||||
+};
|
||||
+
|
||||
+&ehci1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ehci2 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&emac {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&emac_rgmii_pins>;
|
||||
+ phy-supply = <®_gmac_3v3>;
|
||||
+ phy-handle = <&ext_rgmii_phy>;
|
||||
+ phy-mode = "rgmii";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&external_mdio {
|
||||
+ ext_rgmii_phy: ethernet-phy@1 {
|
||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <7>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mmc1 {
|
||||
+ vmmc-supply = <®_vcc3v3>;
|
||||
+ vqmmc-supply = <®_vcc3v3>;
|
||||
+ mmc-pwrseq = <&wifi_pwrseq>;
|
||||
+ bus-width = <4>;
|
||||
+ non-removable;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ sdio_wifi: sdio_wifi@1 {
|
||||
+ reg = <1>;
|
||||
+ compatible = "brcm,bcm4329-fmac";
|
||||
+ interrupt-parent = <&pio>;
|
||||
+ interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ interrupt-names = "host-wake";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mmc2 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&mmc2_8bit_pins>;
|
||||
+ vmmc-supply = <®_vcc3v3>;
|
||||
+ vqmmc-supply = <®_vcc3v3>;
|
||||
+ bus-width = <8>;
|
||||
+ non-removable;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ohci1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ohci2 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&r_pio {
|
||||
+ sw_r_npi: key_pins {
|
||||
+ pins = "PL3";
|
||||
+ function = "gpio_in";
|
||||
+ };
|
||||
+};
|
||||
@ -0,0 +1,20 @@
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
|
||||
@@ -59,7 +59,7 @@
|
||||
|
||||
sw4 {
|
||||
label = "sw4";
|
||||
- linux,code = <BTN_0>;
|
||||
+ linux,code = <KEY_POWER>;
|
||||
gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
|
||||
wakeup-source;
|
||||
};
|
||||
@@ -220,7 +220,7 @@
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
- dr_mode = "otg";
|
||||
+ dr_mode = "host";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -0,0 +1,46 @@
|
||||
From 7d87d3dafc4b1ea5659eb71ee6c5fd5308490d1f Mon Sep 17 00:00:00 2001
|
||||
From: Oskari Lemmela <oskari@lemmela.net>
|
||||
Date: Mon, 31 Dec 2018 07:44:49 +0200
|
||||
Subject: [PATCH] arm64: allwinner: a64-sopine: Add Sopine flash partitions.
|
||||
|
||||
First 896kB to u-boot. Enough space for SPL, u-boot and ATF.
|
||||
Next 128kB to u-boot environment and rest to firmware.
|
||||
|
||||
Firmware partition is compatible FIT image dynamic splitting.
|
||||
|
||||
Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
|
||||
---
|
||||
.../boot/dts/allwinner/sun50i-a64-sopine.dtsi | 22 +++++++++++++++++++
|
||||
1 file changed, 22 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
|
||||
@@ -58,6 +58,28 @@
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <40000000>;
|
||||
+
|
||||
+ partitions {
|
||||
+ compatible = "fixed-partitions";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+
|
||||
+ partition@0 {
|
||||
+ label = "u-boot";
|
||||
+ reg = <0x000000 0x0E0000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@e0000 {
|
||||
+ label = "u-boot-env";
|
||||
+ reg = <0x0E0000 0x020000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@100000 {
|
||||
+ compatible = "denx,fit";
|
||||
+ label = "firmware";
|
||||
+ reg = <0x100000 0xF00000>;
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
};
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <ynezz@true.cz>
|
||||
Date: Thu, 26 Mar 2020 10:09:19 +0100
|
||||
Subject: [PATCH] arm64: dts: allwinner: a64: olinuxino: add status LED aliases
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Petr Štetiar <ynezz@true.cz>
|
||||
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
|
||||
@@ -15,6 +15,10 @@
|
||||
aliases {
|
||||
ethernet0 = &emac;
|
||||
serial0 = &uart0;
|
||||
+ led-boot = &led_user;
|
||||
+ led-failsafe = &led_user;
|
||||
+ led-running = &led_user;
|
||||
+ led-upgrade = &led_user;
|
||||
};
|
||||
|
||||
chosen {
|
||||
@@ -35,7 +39,7 @@
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
- led-0 {
|
||||
+ led_user: led-0 {
|
||||
label = "a64-olinuxino:red:user";
|
||||
gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */
|
||||
};
|
||||
@ -0,0 +1,10 @@
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts
|
||||
@@ -41,3 +41,7 @@
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
+
|
||||
+&pwm {
|
||||
+ status = "okay";
|
||||
+};
|
||||
@ -0,0 +1,72 @@
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
|
||||
@@ -42,6 +42,11 @@
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
+
|
||||
+ wifi_pwrseq: wifi_pwrseq {
|
||||
+ compatible = "mmc-pwrseq-simple";
|
||||
+ reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
|
||||
+ };
|
||||
};
|
||||
|
||||
&ac_power_supply {
|
||||
@@ -102,6 +107,21 @@
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
+
|
||||
+&mmc1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&mmc1_pins>;
|
||||
+ vmmc-supply = <®_dldo4>;
|
||||
+ vqmmc-supply = <®_eldo1>;
|
||||
+ mmc-pwrseq = <&wifi_pwrseq>;
|
||||
+ bus-width = <4>;
|
||||
+ non-removable;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ rtl8723cs: wifi@1 {
|
||||
+ reg = <1>;
|
||||
+ };
|
||||
+};
|
||||
|
||||
&mmc2 {
|
||||
pinctrl-names = "default";
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
|
||||
@@ -35,6 +35,11 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
+
|
||||
+ wifi_pwrseq: wifi_pwrseq {
|
||||
+ compatible = "mmc-pwrseq-simple";
|
||||
+ reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
|
||||
+ };
|
||||
};
|
||||
|
||||
&codec {
|
||||
@@ -124,6 +129,21 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&mmc1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&mmc1_pins>;
|
||||
+ vmmc-supply = <®_dldo4>;
|
||||
+ vqmmc-supply = <®_eldo1>;
|
||||
+ mmc-pwrseq = <&wifi_pwrseq>;
|
||||
+ bus-width = <4>;
|
||||
+ non-removable;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ rtl8723cs: wifi@1 {
|
||||
+ reg = <1>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
@ -1,86 +0,0 @@
|
||||
From 49cd9ea6dc8d68eb519ccd9f31c9730dec8a181a Mon Sep 17 00:00:00 2001
|
||||
From: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
Date: Thu, 8 Mar 2018 22:14:50 +0100
|
||||
Subject: [PATCH] Revert "ARM: dts: sun7i: Add BCM53125 switch nodes to the
|
||||
lamobo-r1 board"
|
||||
|
||||
This reverts the changes needed for the upstream b53 DSA switch driver
|
||||
to use the OpenWrt b43 swconfig switch driver.
|
||||
|
||||
This reverts commit 0cdefd5b5485ee6eb3512a75739d09a4090176ed.
|
||||
This reverts commit d7b9eaff5f0ca00726336b4c0c3c29decf30412a.
|
||||
---
|
||||
arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts | 60 ++-----------------------------
|
||||
1 file changed, 3 insertions(+), 57 deletions(-)
|
||||
|
||||
--- a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
|
||||
@@ -120,65 +120,13 @@
|
||||
&gmac {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&gmac_rgmii_pins>;
|
||||
+ phy = <&phy1>;
|
||||
phy-mode = "rgmii";
|
||||
phy-supply = <®_gmac_3v3>;
|
||||
status = "okay";
|
||||
|
||||
- fixed-link {
|
||||
- speed = <1000>;
|
||||
- full-duplex;
|
||||
- };
|
||||
-
|
||||
- mdio {
|
||||
- compatible = "snps,dwmac-mdio";
|
||||
- #address-cells = <1>;
|
||||
- #size-cells = <0>;
|
||||
-
|
||||
- switch: ethernet-switch@1e {
|
||||
- compatible = "brcm,bcm53125";
|
||||
- reg = <30>;
|
||||
-
|
||||
- ports {
|
||||
- #address-cells = <1>;
|
||||
- #size-cells = <0>;
|
||||
-
|
||||
- port0: port@0 {
|
||||
- reg = <0>;
|
||||
- label = "lan2";
|
||||
- };
|
||||
-
|
||||
- port1: port@1 {
|
||||
- reg = <1>;
|
||||
- label = "lan3";
|
||||
- };
|
||||
-
|
||||
- port2: port@2 {
|
||||
- reg = <2>;
|
||||
- label = "lan4";
|
||||
- };
|
||||
-
|
||||
- port3: port@3 {
|
||||
- reg = <3>;
|
||||
- label = "wan";
|
||||
- };
|
||||
-
|
||||
- port4: port@4 {
|
||||
- reg = <4>;
|
||||
- label = "lan1";
|
||||
- };
|
||||
-
|
||||
- port8: port@8 {
|
||||
- reg = <8>;
|
||||
- label = "cpu";
|
||||
- ethernet = <&gmac>;
|
||||
- phy-mode = "rgmii-txid";
|
||||
- fixed-link {
|
||||
- speed = <1000>;
|
||||
- full-duplex;
|
||||
- };
|
||||
- };
|
||||
- };
|
||||
- };
|
||||
+ phy1: ethernet-phy@1 {
|
||||
+ reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -6,10 +6,6 @@ choice
|
||||
help
|
||||
Select the version of gcc you wish to use.
|
||||
|
||||
config GCC_USE_VERSION_7
|
||||
bool "gcc 7.x"
|
||||
depends on !arc
|
||||
|
||||
config GCC_USE_VERSION_8
|
||||
bool "gcc 8.x"
|
||||
|
||||
|
||||
@ -1,13 +1,5 @@
|
||||
config GCC_VERSION_7
|
||||
default y if GCC_USE_VERSION_7
|
||||
bool
|
||||
|
||||
config GCC_VERSION_9
|
||||
default y if GCC_USE_VERSION_9
|
||||
bool
|
||||
|
||||
config GCC_VERSION_10
|
||||
default y if GCC_USE_VERSION_10
|
||||
config GCC_VERSION_8
|
||||
default y if GCC_USE_VERSION_8
|
||||
bool
|
||||
|
||||
config GCC_VERSION_11
|
||||
@ -16,13 +8,6 @@ config GCC_VERSION_11
|
||||
|
||||
config GCC_VERSION
|
||||
string
|
||||
default "7.5.0" if GCC_VERSION_7
|
||||
default "9.3.0" if GCC_VERSION_9
|
||||
default "10.3.0" if GCC_VERSION_10
|
||||
default "11.2.0" if GCC_VERSION_11
|
||||
default "8.4.0"
|
||||
|
||||
config GCC_USE_IREMAP
|
||||
bool
|
||||
default y if GCC_USE_VERSION_7
|
||||
default n
|
||||
|
||||
@ -28,18 +28,10 @@ GCC_DIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_SOURCE_URL:=@GNU/gcc/gcc-$(PKG_VERSION)
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
|
||||
ifeq ($(PKG_VERSION),7.5.0)
|
||||
PKG_HASH:=b81946e7f01f90528a1f7352ab08cc602b9ccc05d4e44da4bd501c5a189ee661
|
||||
endif
|
||||
|
||||
ifeq ($(PKG_VERSION),8.4.0)
|
||||
PKG_HASH:=e30a6e52d10e1f27ed55104ad233c30bd1e99cfb5ff98ab022dc941edd1b2dd4
|
||||
endif
|
||||
|
||||
ifeq ($(PKG_VERSION),9.3.0)
|
||||
PKG_HASH:=71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1
|
||||
endif
|
||||
|
||||
ifeq ($(PKG_VERSION),10.3.0)
|
||||
PKG_HASH:=64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344
|
||||
endif
|
||||
|
||||
@ -1,77 +0,0 @@
|
||||
commit 31285a20390a5e53a74a2a71d1b5c82f366ddd5a
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Tue May 6 11:49:05 2014 +0000
|
||||
|
||||
gcc: revert an upstream patch that is causing a regression on powerpc
|
||||
|
||||
https://forum.openwrt.org/viewtopic.php?pid=232494#p232494
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
|
||||
SVN-Revision: 40709
|
||||
|
||||
Revert of:
|
||||
|
||||
commit 275035b56823b26d5fb7e90fad945b998648edf2
|
||||
Author: bergner <bergner@138bc75d-0d04-0410-961f-82ee72b054a4>
|
||||
Date: Thu Sep 5 14:09:07 2013 +0000
|
||||
|
||||
PR target/58139
|
||||
* reginfo.c (choose_hard_reg_mode): Scan through all mode classes
|
||||
looking for widest mode.
|
||||
|
||||
|
||||
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202286 138bc75d-0d04-0410-961f-82ee72b054a4
|
||||
|
||||
|
||||
--- a/gcc/reginfo.c
|
||||
+++ b/gcc/reginfo.c
|
||||
@@ -637,35 +637,40 @@ choose_hard_reg_mode (unsigned int regno
|
||||
mode = GET_MODE_WIDER_MODE (mode))
|
||||
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
|
||||
&& HARD_REGNO_MODE_OK (regno, mode)
|
||||
- && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
|
||||
- && GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
|
||||
+ && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
|
||||
found_mode = mode;
|
||||
|
||||
+ if (found_mode != VOIDmode)
|
||||
+ return found_mode;
|
||||
+
|
||||
for (mode = GET_CLASS_NARROWEST_MODE (MODE_FLOAT);
|
||||
mode != VOIDmode;
|
||||
mode = GET_MODE_WIDER_MODE (mode))
|
||||
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
|
||||
&& HARD_REGNO_MODE_OK (regno, mode)
|
||||
- && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
|
||||
- && GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
|
||||
+ && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
|
||||
found_mode = mode;
|
||||
|
||||
+ if (found_mode != VOIDmode)
|
||||
+ return found_mode;
|
||||
+
|
||||
for (mode = GET_CLASS_NARROWEST_MODE (MODE_VECTOR_FLOAT);
|
||||
mode != VOIDmode;
|
||||
mode = GET_MODE_WIDER_MODE (mode))
|
||||
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
|
||||
&& HARD_REGNO_MODE_OK (regno, mode)
|
||||
- && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
|
||||
- && GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
|
||||
+ && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
|
||||
found_mode = mode;
|
||||
|
||||
+ if (found_mode != VOIDmode)
|
||||
+ return found_mode;
|
||||
+
|
||||
for (mode = GET_CLASS_NARROWEST_MODE (MODE_VECTOR_INT);
|
||||
mode != VOIDmode;
|
||||
mode = GET_MODE_WIDER_MODE (mode))
|
||||
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
|
||||
&& HARD_REGNO_MODE_OK (regno, mode)
|
||||
- && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
|
||||
- && GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
|
||||
+ && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
|
||||
found_mode = mode;
|
||||
|
||||
if (found_mode != VOIDmode)
|
||||
@ -1,24 +0,0 @@
|
||||
commit 81cc26c706b2bc8c8c1eb1a322e5c5157900836e
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Sun Oct 19 21:45:51 2014 +0000
|
||||
|
||||
gcc: do not assume that the Mac OS X filesystem is case insensitive
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
|
||||
SVN-Revision: 42973
|
||||
|
||||
--- a/include/filenames.h
|
||||
+++ b/include/filenames.h
|
||||
@@ -43,11 +43,6 @@ extern "C" {
|
||||
# define IS_DIR_SEPARATOR(c) IS_DOS_DIR_SEPARATOR (c)
|
||||
# define IS_ABSOLUTE_PATH(f) IS_DOS_ABSOLUTE_PATH (f)
|
||||
#else /* not DOSish */
|
||||
-# if defined(__APPLE__)
|
||||
-# ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM
|
||||
-# define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1
|
||||
-# endif
|
||||
-# endif /* __APPLE__ */
|
||||
# define HAS_DRIVE_SPEC(f) (0)
|
||||
# define IS_DIR_SEPARATOR(c) IS_UNIX_DIR_SEPARATOR (c)
|
||||
# define IS_ABSOLUTE_PATH(f) IS_UNIX_ABSOLUTE_PATH (f)
|
||||
@ -1,35 +0,0 @@
|
||||
commit 098bd91f5eae625c7d2ee621e10930fc4434e5e2
|
||||
Author: Luka Perkov <luka@openwrt.org>
|
||||
Date: Tue Feb 26 16:16:33 2013 +0000
|
||||
|
||||
gcc: don't build documentation
|
||||
|
||||
This closes #13039.
|
||||
|
||||
Signed-off-by: Luka Perkov <luka@openwrt.org>
|
||||
|
||||
SVN-Revision: 35807
|
||||
|
||||
--- a/gcc/Makefile.in
|
||||
+++ b/gcc/Makefile.in
|
||||
@@ -3121,18 +3121,10 @@ doc/gcc.info: $(TEXI_GCC_FILES)
|
||||
doc/gccint.info: $(TEXI_GCCINT_FILES)
|
||||
doc/cppinternals.info: $(TEXI_CPPINT_FILES)
|
||||
|
||||
-doc/%.info: %.texi
|
||||
- if [ x$(BUILD_INFO) = xinfo ]; then \
|
||||
- $(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \
|
||||
- -I $(gcc_docdir)/include -o $@ $<; \
|
||||
- fi
|
||||
+doc/%.info:
|
||||
|
||||
# Duplicate entry to handle renaming of gccinstall.info
|
||||
-doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES)
|
||||
- if [ x$(BUILD_INFO) = xinfo ]; then \
|
||||
- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
|
||||
- -I $(gcc_docdir)/include -o $@ $<; \
|
||||
- fi
|
||||
+doc/gccinstall.info:
|
||||
|
||||
doc/cpp.dvi: $(TEXI_CPP_FILES)
|
||||
doc/gcc.dvi: $(TEXI_GCC_FILES)
|
||||
@ -1,20 +0,0 @@
|
||||
Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84790.
|
||||
MIPS16 functions have a static assembler prologue which clobbers
|
||||
registers v0 and v1. Add these register clobbers to function call
|
||||
instructions.
|
||||
|
||||
--- a/gcc/config/mips/mips.c
|
||||
+++ b/gcc/config/mips/mips.c
|
||||
@@ -3098,6 +3098,12 @@ mips_emit_call_insn (rtx pattern, rtx or
|
||||
emit_insn (gen_update_got_version ());
|
||||
}
|
||||
|
||||
+ if (TARGET_MIPS16 && TARGET_USE_GOT)
|
||||
+ {
|
||||
+ clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS16_PIC_TEMP);
|
||||
+ clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS_PROLOGUE_TEMP (word_mode));
|
||||
+ }
|
||||
+
|
||||
if (TARGET_MIPS16
|
||||
&& TARGET_EXPLICIT_RELOCS
|
||||
&& TARGET_CALL_CLOBBERED_GP)
|
||||
@ -1,28 +0,0 @@
|
||||
commit 1877bc9d8f2be143fbe530347a945850d0ecd234
|
||||
Author: Steven Barth <cyrus@openwrt.org>
|
||||
Date: Mon Jun 22 10:31:07 2015 +0000
|
||||
|
||||
gcc/musl: rework SSP-support
|
||||
|
||||
Make musl provide libssp_nonshared.a and make GCC link it unconditionally
|
||||
if musl is used. This should be a no-op if SSP is disabled and seems to be
|
||||
the only reliable way of dealing with SSP over all packages due to the mess
|
||||
that is linkerflags handling in packages.
|
||||
|
||||
Signed-off-by: Steven Barth <steven@midlink.org>
|
||||
|
||||
SVN-Revision: 46108
|
||||
|
||||
--- a/gcc/gcc.c
|
||||
+++ b/gcc/gcc.c
|
||||
@@ -861,7 +861,9 @@ proper position among the other output f
|
||||
#endif
|
||||
|
||||
#ifndef LINK_SSP_SPEC
|
||||
-#ifdef TARGET_LIBC_PROVIDES_SSP
|
||||
+#if DEFAULT_LIBC == LIBC_MUSL
|
||||
+#define LINK_SSP_SPEC "-lssp_nonshared"
|
||||
+#elif defined(TARGET_LIBC_PROVIDES_SSP)
|
||||
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
|
||||
"|fstack-protector-strong|fstack-protector-explicit:}"
|
||||
#else
|
||||
@ -1,21 +0,0 @@
|
||||
commit ecf7671b769fe96f7b5134be442089f8bdba55d2
|
||||
Author: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Thu Aug 4 20:29:45 2016 +0200
|
||||
|
||||
gcc: add a patch to generate better code with Os on mips
|
||||
|
||||
Also happens to reduce compressed code size a bit
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/gcc/config/mips/mips.c
|
||||
+++ b/gcc/config/mips/mips.c
|
||||
@@ -19790,7 +19790,7 @@ mips_option_override (void)
|
||||
flag_pcc_struct_return = 0;
|
||||
|
||||
/* Decide which rtx_costs structure to use. */
|
||||
- if (optimize_size)
|
||||
+ if (0 && optimize_size)
|
||||
mips_cost = &mips_rtx_cost_optimize_size;
|
||||
else
|
||||
mips_cost = &mips_rtx_cost_data[mips_tune];
|
||||
@ -1,32 +0,0 @@
|
||||
commit b050f87d13b5dc7ed82feb9a90f4529de58bdf25
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Wed Feb 19 19:20:10 2014 +0000
|
||||
|
||||
gcc: prevent the use of LDRD/STRD on ARMv5TE
|
||||
|
||||
These instructions are for 64-bit load/store. On ARMv5TE, the CPU
|
||||
requires addresses to be aligned to 64-bit. When misaligned, behavior is
|
||||
undefined (effectively either loads the same word twice on LDRD, or
|
||||
corrupts surrounding memory on STRD).
|
||||
|
||||
On ARMv6 and newer, unaligned access is safe.
|
||||
|
||||
Removing these instructions for ARMv5TE is necessary, because GCC
|
||||
ignores alignment information in pointers and does unsafe optimizations
|
||||
that have shown up as bugs in various places.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
|
||||
SVN-Revision: 39638
|
||||
|
||||
--- a/gcc/config/arm/arm.h
|
||||
+++ b/gcc/config/arm/arm.h
|
||||
@@ -150,7 +150,7 @@ extern tree arm_fp16_type_node;
|
||||
/* Thumb-1 only. */
|
||||
#define TARGET_THUMB1_ONLY (TARGET_THUMB1 && !arm_arch_notm)
|
||||
|
||||
-#define TARGET_LDRD (arm_arch5e && ARM_DOUBLEWORD_ALIGN \
|
||||
+#define TARGET_LDRD (arm_arch6 && ARM_DOUBLEWORD_ALIGN \
|
||||
&& !TARGET_THUMB1)
|
||||
|
||||
#define TARGET_CRC32 (arm_arch_crc)
|
||||
@ -1,33 +0,0 @@
|
||||
commit 8570c4be394cff7282f332f97da2ff569a927ddb
|
||||
Author: Imre Kaloz <kaloz@openwrt.org>
|
||||
Date: Wed Feb 2 20:06:12 2011 +0000
|
||||
|
||||
fixup arm soft-float symbols
|
||||
|
||||
SVN-Revision: 25325
|
||||
|
||||
--- a/libgcc/config/arm/t-linux
|
||||
+++ b/libgcc/config/arm/t-linux
|
||||
@@ -1,6 +1,10 @@
|
||||
LIB1ASMSRC = arm/lib1funcs.S
|
||||
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
|
||||
- _ctzsi2 _arm_addsubdf3 _arm_addsubsf3
|
||||
+ _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 \
|
||||
+ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
|
||||
+ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \
|
||||
+ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \
|
||||
+ _arm_fixsfsi _arm_fixunssfsi
|
||||
|
||||
# Just for these, we omit the frame pointer since it makes such a big
|
||||
# difference.
|
||||
--- a/gcc/config/arm/linux-elf.h
|
||||
+++ b/gcc/config/arm/linux-elf.h
|
||||
@@ -58,8 +58,6 @@
|
||||
%{shared:-lc} \
|
||||
%{!shared:%{profile:-lc_p}%{!profile:-lc}}"
|
||||
|
||||
-#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
|
||||
-
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
|
||||
#define LINUX_TARGET_LINK_SPEC "%{h*} \
|
||||
@ -1,44 +0,0 @@
|
||||
commit c96312958c0621e72c9b32da5bc224ffe2161384
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Mon Oct 19 23:26:09 2009 +0000
|
||||
|
||||
gcc: create a proper libgcc_pic.a static library for relinking (4.3.3+ for now, backport will follow)
|
||||
|
||||
SVN-Revision: 18086
|
||||
|
||||
--- a/libgcc/Makefile.in
|
||||
+++ b/libgcc/Makefile.in
|
||||
@@ -920,11 +920,12 @@ $(libgcov-driver-objects): %$(objext): $
|
||||
|
||||
# Static libraries.
|
||||
libgcc.a: $(libgcc-objects)
|
||||
+libgcc_pic.a: $(libgcc-s-objects)
|
||||
libgcov.a: $(libgcov-objects)
|
||||
libunwind.a: $(libunwind-objects)
|
||||
libgcc_eh.a: $(libgcc-eh-objects)
|
||||
|
||||
-libgcc.a libgcov.a libunwind.a libgcc_eh.a:
|
||||
+libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a:
|
||||
-rm -f $@
|
||||
|
||||
objects="$(objects)"; \
|
||||
@@ -945,7 +946,7 @@ all: libunwind.a
|
||||
endif
|
||||
|
||||
ifeq ($(enable_shared),yes)
|
||||
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
|
||||
+all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT)
|
||||
ifneq ($(LIBUNWIND),)
|
||||
all: libunwind$(SHLIB_EXT)
|
||||
libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
|
||||
@@ -1151,6 +1152,10 @@ install-shared:
|
||||
chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||
|
||||
+ $(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/
|
||||
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
|
||||
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
|
||||
+
|
||||
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
|
||||
@shlib_base_name@,libgcc_s,$(subst \
|
||||
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
|
||||
@ -1,28 +0,0 @@
|
||||
commit 7edc8ca5456d9743dd0075eb3cc5b04f4f24c8cc
|
||||
Author: Imre Kaloz <kaloz@openwrt.org>
|
||||
Date: Wed Feb 2 19:34:36 2011 +0000
|
||||
|
||||
add armv4 fixup patches
|
||||
|
||||
SVN-Revision: 25322
|
||||
|
||||
|
||||
--- a/gcc/config/arm/linux-eabi.h
|
||||
+++ b/gcc/config/arm/linux-eabi.h
|
||||
@@ -88,10 +88,15 @@
|
||||
#define MUSL_DYNAMIC_LINKER \
|
||||
"/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1"
|
||||
|
||||
+/* For armv4 we pass --fix-v4bx to linker to support EABI */
|
||||
+#undef TARGET_FIX_V4BX_SPEC
|
||||
+#define TARGET_FIX_V4BX_SPEC " %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*"\
|
||||
+ "|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx}"
|
||||
+
|
||||
/* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
|
||||
use the GNU/Linux version, not the generic BPABI version. */
|
||||
#undef LINK_SPEC
|
||||
-#define LINK_SPEC EABI_LINK_SPEC \
|
||||
+#define LINK_SPEC EABI_LINK_SPEC TARGET_FIX_V4BX_SPEC \
|
||||
LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \
|
||||
LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
|
||||
|
||||
@ -1,54 +0,0 @@
|
||||
commit dcfc40358b5a3cae7320c17f8d1cebd5ad5540cd
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Sun Feb 12 20:25:47 2012 +0000
|
||||
|
||||
gcc 4.6: port over the missing patch 850-use_shared_libgcc.patch to prevent libgcc crap from leaking into every single binary
|
||||
|
||||
SVN-Revision: 30486
|
||||
--- a/gcc/config/arm/linux-eabi.h
|
||||
+++ b/gcc/config/arm/linux-eabi.h
|
||||
@@ -126,10 +126,6 @@
|
||||
"%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \
|
||||
LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC)
|
||||
|
||||
-/* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we
|
||||
- do not use -lfloat. */
|
||||
-#undef LIBGCC_SPEC
|
||||
-
|
||||
/* Clear the instruction cache from `beg' to `end'. This is
|
||||
implemented in lib1funcs.S, so ensure an error if this definition
|
||||
is used. */
|
||||
--- a/gcc/config/linux.h
|
||||
+++ b/gcc/config/linux.h
|
||||
@@ -53,6 +53,10 @@ see the files COPYING3 and COPYING.RUNTI
|
||||
builtin_assert ("system=posix"); \
|
||||
} while (0)
|
||||
|
||||
+#ifndef LIBGCC_SPEC
|
||||
+#define LIBGCC_SPEC "%{static|static-libgcc:-lgcc}%{!static:%{!static-libgcc:-lgcc_s}}"
|
||||
+#endif
|
||||
+
|
||||
/* Determine which dynamic linker to use depending on whether GLIBC or
|
||||
uClibc or Bionic or musl is the default C library and whether
|
||||
-muclibc or -mglibc or -mbionic or -mmusl has been passed to change
|
||||
--- a/libgcc/mkmap-symver.awk
|
||||
+++ b/libgcc/mkmap-symver.awk
|
||||
@@ -136,5 +136,5 @@ function output(lib) {
|
||||
else if (inherit[lib])
|
||||
printf("} %s;\n", inherit[lib]);
|
||||
else
|
||||
- printf ("\n local:\n\t*;\n};\n");
|
||||
+ printf ("\n\t*;\n};\n");
|
||||
}
|
||||
--- a/gcc/config/rs6000/linux.h
|
||||
+++ b/gcc/config/rs6000/linux.h
|
||||
@@ -60,6 +60,9 @@
|
||||
#undef CPP_OS_DEFAULT_SPEC
|
||||
#define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux)"
|
||||
|
||||
+#undef LIBGCC_SPEC
|
||||
+#define LIBGCC_SPEC "%{!static:%{!static-libgcc:-lgcc_s}} -lgcc"
|
||||
+
|
||||
#undef LINK_SHLIB_SPEC
|
||||
#define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}}"
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
commit 64661de100da1ec1061ef3e5e400285dce115e6b
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Sun May 10 13:16:35 2015 +0000
|
||||
|
||||
gcc: add some size optimization patches
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
|
||||
SVN-Revision: 45664
|
||||
|
||||
--- a/libgcc/config/t-libunwind
|
||||
+++ b/libgcc/config/t-libunwind
|
||||
@@ -2,8 +2,7 @@
|
||||
|
||||
HOST_LIBGCC2_CFLAGS += -DUSE_GAS_SYMVER
|
||||
|
||||
-LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \
|
||||
- $(srcdir)/unwind-compat.c $(srcdir)/unwind-dw2-fde-compat.c
|
||||
+LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
|
||||
LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
|
||||
|
||||
# Override the default value from t-slibgcc-elf-ver and mention -lunwind
|
||||
@ -1,18 +0,0 @@
|
||||
commit d8c570a1531035c3e26bcd94741e5f5b9c36b5d9
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Mon Mar 5 00:51:01 2012 +0000
|
||||
|
||||
gcc: do not emit references to _savegpr_* and _restgpr_* on powerpc, as they are tricky to deal with wrt. libgcc. they cannot be linked dynamically
|
||||
|
||||
SVN-Revision: 30814
|
||||
--- a/gcc/config/rs6000/rs6000.c
|
||||
+++ b/gcc/config/rs6000/rs6000.c
|
||||
@@ -26981,7 +26981,7 @@ rs6000_savres_strategy (rs6000_stack_t *
|
||||
/* Define cutoff for using out-of-line functions to save registers. */
|
||||
if (DEFAULT_ABI == ABI_V4 || TARGET_ELF)
|
||||
{
|
||||
- if (!optimize_size)
|
||||
+ if (1)
|
||||
{
|
||||
strategy |= SAVE_INLINE_FPRS | REST_INLINE_FPRS;
|
||||
strategy |= SAVE_INLINE_GPRS | REST_INLINE_GPRS;
|
||||
@ -1,22 +0,0 @@
|
||||
commit 565988ab47bd9b96b50608564aee2104aeb4b7ae
|
||||
Author: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Tue Dec 13 14:20:49 2016 +0100
|
||||
|
||||
gcc: rip out transactional memory related bloat from crtbegin
|
||||
|
||||
Slightly improves compression for each executable, saving about 4k from
|
||||
the default ar71xx rootfs
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/libgcc/crtstuff.c
|
||||
+++ b/libgcc/crtstuff.c
|
||||
@@ -152,7 +152,7 @@ call_ ## FUNC (void) \
|
||||
#endif
|
||||
|
||||
#if !defined(USE_TM_CLONE_REGISTRY) && defined(OBJECT_FORMAT_ELF)
|
||||
-# define USE_TM_CLONE_REGISTRY 1
|
||||
+# define USE_TM_CLONE_REGISTRY 0
|
||||
#endif
|
||||
|
||||
/* We do not want to add the weak attribute to the declarations of these
|
||||
@ -1,30 +0,0 @@
|
||||
commit 9dc38e48f7a6f88b7ac7bfaced91f53660204e46
|
||||
Author: Florian Fainelli <florian@openwrt.org>
|
||||
Date: Fri Apr 5 12:36:06 2013 +0000
|
||||
|
||||
toolchain/gcc: .init and .fini need to pick one ISA
|
||||
|
||||
The .init and .fini sections are built by concatenating code
|
||||
fragments. Putting mips16 code in the middle of a mips32 code block
|
||||
doesn't work. Make gcc built the magic crt stuff in no-mips16 mode.
|
||||
|
||||
This is specific to 4.6-linaro but is probably portable to other gcc
|
||||
flavors. Adding this to the t-libgcc-mips16 makefile fragment is a
|
||||
hack not suitable for pushing upstream, but there is no mips/t-linux
|
||||
or mips/t-uclibc and I am not going to touch gcc/configure for two
|
||||
lines.
|
||||
|
||||
Signed-off-by: Jay Carlson <nop@nop.com>
|
||||
Signed-off-by: Florian Fainelli <florian@openwrt.org>
|
||||
|
||||
SVN-Revision: 36200
|
||||
|
||||
--- a/libgcc/config/mips/t-mips16
|
||||
+++ b/libgcc/config/mips/t-mips16
|
||||
@@ -43,3 +43,6 @@ SYNC_CFLAGS = -mno-mips16
|
||||
|
||||
# Version these symbols if building libgcc.so.
|
||||
SHLIB_MAPFILES += $(srcdir)/config/mips/libgcc-mips16.ver
|
||||
+
|
||||
+CRTSTUFF_T_CFLAGS += -mno-mips16
|
||||
+CRTSTUFF_T_CFLAGS_S += -mno-mips16
|
||||
@ -1,146 +0,0 @@
|
||||
commit 99368862e44740ff4fd33760893f04e14f9dbdf1
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Tue Jul 31 00:52:27 2007 +0000
|
||||
|
||||
Port the mbsd_multi patch from freewrt, which adds -fhonour-copts. This will emit warnings in packages that don't use our target cflags properly
|
||||
|
||||
SVN-Revision: 8256
|
||||
|
||||
This patch brings over a feature from MirBSD:
|
||||
* -fhonour-copts
|
||||
If this option is not given, it's warned (depending
|
||||
on environment variables). This is to catch errors
|
||||
of misbuilt packages which override CFLAGS themselves.
|
||||
|
||||
This patch was authored by Thorsten Glaser <tg at mirbsd.de>
|
||||
with copyright assignment to the FSF in effect.
|
||||
|
||||
--- a/gcc/c-family/c-opts.c
|
||||
+++ b/gcc/c-family/c-opts.c
|
||||
@@ -108,6 +108,9 @@ static int class_dump_flags;
|
||||
/* Whether any standard preincluded header has been preincluded. */
|
||||
static bool done_preinclude;
|
||||
|
||||
+/* Check if a port honours COPTS. */
|
||||
+static int honour_copts = 0;
|
||||
+
|
||||
static void handle_OPT_d (const char *);
|
||||
static void set_std_cxx98 (int);
|
||||
static void set_std_cxx11 (int);
|
||||
@@ -456,6 +459,12 @@ c_common_handle_option (size_t scode, co
|
||||
flag_no_builtin = !value;
|
||||
break;
|
||||
|
||||
+ case OPT_fhonour_copts:
|
||||
+ if (c_language == clk_c) {
|
||||
+ honour_copts++;
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
case OPT_fconstant_string_class_:
|
||||
constant_string_class_name = arg;
|
||||
break;
|
||||
@@ -1084,6 +1093,47 @@ c_common_init (void)
|
||||
return false;
|
||||
}
|
||||
|
||||
+ if (c_language == clk_c) {
|
||||
+ char *ev = getenv ("GCC_HONOUR_COPTS");
|
||||
+ int evv;
|
||||
+ if (ev == NULL)
|
||||
+ evv = -1;
|
||||
+ else if ((*ev == '0') || (*ev == '\0'))
|
||||
+ evv = 0;
|
||||
+ else if (*ev == '1')
|
||||
+ evv = 1;
|
||||
+ else if (*ev == '2')
|
||||
+ evv = 2;
|
||||
+ else if (*ev == 's')
|
||||
+ evv = -1;
|
||||
+ else {
|
||||
+ warning (0, "unknown GCC_HONOUR_COPTS value, assuming 1");
|
||||
+ evv = 1; /* maybe depend this on something like MIRBSD_NATIVE? */
|
||||
+ }
|
||||
+ if (evv == 1) {
|
||||
+ if (honour_copts == 0) {
|
||||
+ error ("someone does not honour COPTS at all in lenient mode");
|
||||
+ return false;
|
||||
+ } else if (honour_copts != 1) {
|
||||
+ warning (0, "someone does not honour COPTS correctly, passed %d times",
|
||||
+ honour_copts);
|
||||
+ }
|
||||
+ } else if (evv == 2) {
|
||||
+ if (honour_copts == 0) {
|
||||
+ error ("someone does not honour COPTS at all in strict mode");
|
||||
+ return false;
|
||||
+ } else if (honour_copts != 1) {
|
||||
+ error ("someone does not honour COPTS correctly, passed %d times",
|
||||
+ honour_copts);
|
||||
+ return false;
|
||||
+ }
|
||||
+ } else if (evv == 0) {
|
||||
+ if (honour_copts != 1)
|
||||
+ inform (0, "someone does not honour COPTS correctly, passed %d times",
|
||||
+ honour_copts);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
return true;
|
||||
}
|
||||
|
||||
--- a/gcc/c-family/c.opt
|
||||
+++ b/gcc/c-family/c.opt
|
||||
@@ -1412,6 +1412,9 @@ C++ ObjC++ Optimization Alias(fexception
|
||||
fhonor-std
|
||||
C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
|
||||
|
||||
+fhonour-copts
|
||||
+C ObjC C++ ObjC++ RejectNegative
|
||||
+
|
||||
fhosted
|
||||
C ObjC
|
||||
Assume normal C execution environment.
|
||||
--- a/gcc/common.opt
|
||||
+++ b/gcc/common.opt
|
||||
@@ -1510,6 +1510,9 @@ fguess-branch-probability
|
||||
Common Report Var(flag_guess_branch_prob) Optimization
|
||||
Enable guessing of branch probabilities.
|
||||
|
||||
+fhonour-copts
|
||||
+Common RejectNegative
|
||||
+
|
||||
; Nonzero means ignore `#ident' directives. 0 means handle them.
|
||||
; Generate position-independent code for executables if possible
|
||||
; On SVR4 targets, it also controls whether or not to emit a
|
||||
--- a/gcc/opts.c
|
||||
+++ b/gcc/opts.c
|
||||
@@ -1954,6 +1954,9 @@ common_handle_option (struct gcc_options
|
||||
opts, opts_set, loc, dc);
|
||||
break;
|
||||
|
||||
+ case OPT_fhonour_copts:
|
||||
+ break;
|
||||
+
|
||||
case OPT_Wlarger_than_:
|
||||
opts->x_larger_than_size = value;
|
||||
opts->x_warn_larger_than = value != -1;
|
||||
--- a/gcc/doc/invoke.texi
|
||||
+++ b/gcc/doc/invoke.texi
|
||||
@@ -6572,6 +6572,17 @@ This option is only supported for C and
|
||||
@option{-Wall} and by @option{-Wpedantic}, which can be disabled with
|
||||
@option{-Wno-pointer-sign}.
|
||||
|
||||
+@item -fhonour-copts
|
||||
+@opindex fhonour-copts
|
||||
+If @env{GCC_HONOUR_COPTS} is set to 1, abort if this option is not
|
||||
+given at least once, and warn if it is given more than once.
|
||||
+If @env{GCC_HONOUR_COPTS} is set to 2, abort if this option is not
|
||||
+given exactly once.
|
||||
+If @env{GCC_HONOUR_COPTS} is set to 0 or unset, warn if this option
|
||||
+is not given exactly once.
|
||||
+The warning is quelled if @env{GCC_HONOUR_COPTS} is set to @samp{s}.
|
||||
+This flag and environment variable only affect the C language.
|
||||
+
|
||||
@item -Wstack-protector
|
||||
@opindex Wstack-protector
|
||||
@opindex Wno-stack-protector
|
||||
@ -1,22 +0,0 @@
|
||||
Author: Jo-Philipp Wich <jow@openwrt.org>
|
||||
Date: Sat Apr 21 03:02:39 2012 +0000
|
||||
|
||||
gcc: add patch to make the getenv() spec function nonfatal if requested environment variable is unset
|
||||
|
||||
SVN-Revision: 31390
|
||||
|
||||
--- a/gcc/gcc.c
|
||||
+++ b/gcc/gcc.c
|
||||
@@ -9281,8 +9281,10 @@ getenv_spec_function (int argc, const ch
|
||||
value = varname;
|
||||
|
||||
if (!value)
|
||||
- fatal_error (input_location,
|
||||
- "environment variable %qs not defined", varname);
|
||||
+ {
|
||||
+ warning (input_location, "environment variable %qs not defined", varname);
|
||||
+ value = "";
|
||||
+ }
|
||||
|
||||
/* We have to escape every character of the environment variable so
|
||||
they are not interpreted as active spec characters. A
|
||||
@ -1,111 +0,0 @@
|
||||
From da45b3fde60095756f5f6030f6012c23a3d34429 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew McDonnell <bugs@andrewmcdonnell.net>
|
||||
Date: Fri, 3 Oct 2014 19:09:00 +0930
|
||||
Subject: Add .note.GNU-stack section
|
||||
|
||||
See http://lists.busybox.net/pipermail/uclibc/2014-October/048671.html
|
||||
Below copied from https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02430.html
|
||||
|
||||
Re: [Patch, MIPS] Add .note.GNU-stack section
|
||||
|
||||
From: Steve Ellcey <sellcey at mips dot com>
|
||||
|
||||
On Wed, 2014-09-10 at 10:15 -0700, Eric Christopher wrote:
|
||||
>
|
||||
>
|
||||
> On Wed, Sep 10, 2014 at 9:27 AM, <pinskia@gmail.com> wrote:
|
||||
|
||||
> This works except you did not update the assembly files in
|
||||
> libgcc or glibc. We (Cavium) have the same patch in our tree
|
||||
> for a few released versions.
|
||||
|
||||
> Mind just checking yours in then Andrew?
|
||||
|
||||
> Thanks!
|
||||
> -eric
|
||||
|
||||
I talked to Andrew about what files he changed in GCC and created and
|
||||
tested this new patch. Andrew also mentioned changing some assembly
|
||||
files in glibc but I don't see any use of '.section .note.GNU-stack' in
|
||||
any assembly files in glibc (for any platform) so I wasn't planning on
|
||||
creating a glibc to add them to mips glibc assembly language files.
|
||||
|
||||
OK to check in this patch?
|
||||
|
||||
Steve Ellcey
|
||||
sellcey@mips.com
|
||||
|
||||
|
||||
|
||||
2014-09-26 Steve Ellcey <sellcey@mips.com>
|
||||
---
|
||||
gcc/config/mips/mips.c | 3 +++
|
||||
libgcc/config/mips/crti.S | 4 ++++
|
||||
libgcc/config/mips/crtn.S | 3 +++
|
||||
libgcc/config/mips/mips16.S | 4 ++++
|
||||
libgcc/config/mips/vr4120-div.S | 4 ++++
|
||||
5 files changed, 18 insertions(+)
|
||||
|
||||
--- a/gcc/config/mips/mips.c
|
||||
+++ b/gcc/config/mips/mips.c
|
||||
@@ -22567,6 +22567,9 @@ mips_promote_function_mode (const_tree t
|
||||
#undef TARGET_CUSTOM_FUNCTION_DESCRIPTORS
|
||||
#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 2
|
||||
|
||||
+#undef TARGET_ASM_FILE_END
|
||||
+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
|
||||
+
|
||||
struct gcc_target targetm = TARGET_INITIALIZER;
|
||||
|
||||
#include "gt-mips.h"
|
||||
--- a/libgcc/config/mips/crti.S
|
||||
+++ b/libgcc/config/mips/crti.S
|
||||
@@ -21,6 +21,10 @@ a copy of the GCC Runtime Library Except
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
+
|
||||
+/* An executable stack is *not* required for these functions. */
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+
|
||||
/* 4 slots for argument spill area. 1 for cpreturn, 1 for stack.
|
||||
Return spill offset of 40 and 20. Aligned to 16 bytes for n32. */
|
||||
|
||||
--- a/libgcc/config/mips/crtn.S
|
||||
+++ b/libgcc/config/mips/crtn.S
|
||||
@@ -21,6 +21,9 @@ a copy of the GCC Runtime Library Except
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
+/* An executable stack is *not* required for these functions. */
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+
|
||||
/* 4 slots for argument spill area. 1 for cpreturn, 1 for stack.
|
||||
Return spill offset of 40 and 20. Aligned to 16 bytes for n32. */
|
||||
|
||||
--- a/libgcc/config/mips/mips16.S
|
||||
+++ b/libgcc/config/mips/mips16.S
|
||||
@@ -48,6 +48,10 @@ see the files COPYING3 and COPYING.RUNTI
|
||||
values using the soft-float calling convention, but do the actual
|
||||
operation using the hard floating point instructions. */
|
||||
|
||||
+/* An executable stack is *not* required for these functions. */
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+ .previous
|
||||
+
|
||||
#if defined _MIPS_SIM && (_MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIO64)
|
||||
|
||||
/* This file contains 32-bit assembly code. */
|
||||
--- a/libgcc/config/mips/vr4120-div.S
|
||||
+++ b/libgcc/config/mips/vr4120-div.S
|
||||
@@ -26,6 +26,10 @@ see the files COPYING3 and COPYING.RUNTI
|
||||
-mfix-vr4120. div and ddiv do not give the correct result when one
|
||||
of the operands is negative. */
|
||||
|
||||
+/* An executable stack is *not* required for these functions. */
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+ .previous
|
||||
+
|
||||
.set nomips16
|
||||
|
||||
#define DIV \
|
||||
@ -1,175 +0,0 @@
|
||||
From c0c62fa4256f805389f16ebfc4a60cf789129b50 Mon Sep 17 00:00:00 2001
|
||||
From: BangLang Huang <banglang.huang@foxmail.com>
|
||||
Date: Wed, 9 Nov 2016 10:36:49 +0800
|
||||
Subject: [PATCH] libffi: fix MIPS softfloat build issue
|
||||
|
||||
Backported from github.com/libffi/libffi#272
|
||||
|
||||
Signed-off-by: BangLang Huang <banglang.huang@foxmail.com>
|
||||
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
|
||||
---
|
||||
libffi/src/mips/n32.S | 17 +++++++++++++++++
|
||||
libffi/src/mips/o32.S | 17 +++++++++++++++++
|
||||
2 files changed, 34 insertions(+)
|
||||
|
||||
diff --git a/libffi/src/mips/n32.S b/libffi/src/mips/n32.S
|
||||
index c6985d30a6f..8f25994773c 100644
|
||||
--- a/libffi/src/mips/n32.S
|
||||
+++ b/libffi/src/mips/n32.S
|
||||
@@ -107,6 +107,16 @@ loadregs:
|
||||
|
||||
REG_L t6, 3*FFI_SIZEOF_ARG($fp) # load the flags word into t6.
|
||||
|
||||
+#ifdef __mips_soft_float
|
||||
+ REG_L a0, 0*FFI_SIZEOF_ARG(t9)
|
||||
+ REG_L a1, 1*FFI_SIZEOF_ARG(t9)
|
||||
+ REG_L a2, 2*FFI_SIZEOF_ARG(t9)
|
||||
+ REG_L a3, 3*FFI_SIZEOF_ARG(t9)
|
||||
+ REG_L a4, 4*FFI_SIZEOF_ARG(t9)
|
||||
+ REG_L a5, 5*FFI_SIZEOF_ARG(t9)
|
||||
+ REG_L a6, 6*FFI_SIZEOF_ARG(t9)
|
||||
+ REG_L a7, 7*FFI_SIZEOF_ARG(t9)
|
||||
+#else
|
||||
and t4, t6, ((1<<FFI_FLAG_BITS)-1)
|
||||
REG_L a0, 0*FFI_SIZEOF_ARG(t9)
|
||||
beqz t4, arg1_next
|
||||
@@ -193,6 +203,7 @@ arg7_next:
|
||||
arg8_doublep:
|
||||
l.d $f19, 7*FFI_SIZEOF_ARG(t9)
|
||||
arg8_next:
|
||||
+#endif
|
||||
|
||||
callit:
|
||||
# Load the function pointer
|
||||
@@ -214,6 +225,7 @@ retint:
|
||||
b epilogue
|
||||
|
||||
retfloat:
|
||||
+#ifndef __mips_soft_float
|
||||
bne t6, FFI_TYPE_FLOAT, retdouble
|
||||
jal t9
|
||||
REG_L t4, 4*FFI_SIZEOF_ARG($fp)
|
||||
@@ -272,6 +284,7 @@ retstruct_f_d:
|
||||
s.s $f0, 0(t4)
|
||||
s.d $f2, 8(t4)
|
||||
b epilogue
|
||||
+#endif
|
||||
|
||||
retstruct_d_soft:
|
||||
bne t6, FFI_TYPE_STRUCT_D_SOFT, retstruct_f_soft
|
||||
@@ -429,6 +442,7 @@ ffi_closure_N32:
|
||||
REG_S a6, A6_OFF2($sp)
|
||||
REG_S a7, A7_OFF2($sp)
|
||||
|
||||
+#ifndef __mips_soft_float
|
||||
# Store all possible float/double registers.
|
||||
s.d $f12, F12_OFF2($sp)
|
||||
s.d $f13, F13_OFF2($sp)
|
||||
@@ -438,6 +452,7 @@ ffi_closure_N32:
|
||||
s.d $f17, F17_OFF2($sp)
|
||||
s.d $f18, F18_OFF2($sp)
|
||||
s.d $f19, F19_OFF2($sp)
|
||||
+#endif
|
||||
|
||||
# Call ffi_closure_mips_inner_N32 to do the real work.
|
||||
LA t9, ffi_closure_mips_inner_N32
|
||||
@@ -458,6 +473,7 @@ cls_retint:
|
||||
b cls_epilogue
|
||||
|
||||
cls_retfloat:
|
||||
+#ifndef __mips_soft_float
|
||||
bne v0, FFI_TYPE_FLOAT, cls_retdouble
|
||||
l.s $f0, V0_OFF2($sp)
|
||||
b cls_epilogue
|
||||
@@ -500,6 +516,7 @@ cls_retstruct_f_d:
|
||||
l.s $f0, V0_OFF2($sp)
|
||||
l.d $f2, V1_OFF2($sp)
|
||||
b cls_epilogue
|
||||
+#endif
|
||||
|
||||
cls_retstruct_small2:
|
||||
REG_L v0, V0_OFF2($sp)
|
||||
diff --git a/libffi/src/mips/o32.S b/libffi/src/mips/o32.S
|
||||
index eb279813a76..1aff4b14814 100644
|
||||
--- a/libffi/src/mips/o32.S
|
||||
+++ b/libffi/src/mips/o32.S
|
||||
@@ -82,13 +82,16 @@ sixteen:
|
||||
|
||||
ADDU $sp, 4 * FFI_SIZEOF_ARG # adjust $sp to new args
|
||||
|
||||
+#ifndef __mips_soft_float
|
||||
bnez t0, pass_d # make it quick for int
|
||||
+#endif
|
||||
REG_L a0, 0*FFI_SIZEOF_ARG($sp) # just go ahead and load the
|
||||
REG_L a1, 1*FFI_SIZEOF_ARG($sp) # four regs.
|
||||
REG_L a2, 2*FFI_SIZEOF_ARG($sp)
|
||||
REG_L a3, 3*FFI_SIZEOF_ARG($sp)
|
||||
b call_it
|
||||
|
||||
+#ifndef __mips_soft_float
|
||||
pass_d:
|
||||
bne t0, FFI_ARGS_D, pass_f
|
||||
l.d $f12, 0*FFI_SIZEOF_ARG($sp) # load $fp regs from args
|
||||
@@ -130,6 +133,7 @@ pass_f_d:
|
||||
# bne t0, FFI_ARGS_F_D, call_it
|
||||
l.s $f12, 0*FFI_SIZEOF_ARG($sp) # load $fp regs from args
|
||||
l.d $f14, 2*FFI_SIZEOF_ARG($sp) # passing double and float
|
||||
+#endif
|
||||
|
||||
call_it:
|
||||
# Load the function pointer
|
||||
@@ -158,14 +162,23 @@ retfloat:
|
||||
bne t2, FFI_TYPE_FLOAT, retdouble
|
||||
jalr t9
|
||||
REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
|
||||
+#ifndef __mips_soft_float
|
||||
s.s $f0, 0(t0)
|
||||
+#else
|
||||
+ REG_S v0, 0(t0)
|
||||
+#endif
|
||||
b epilogue
|
||||
|
||||
retdouble:
|
||||
bne t2, FFI_TYPE_DOUBLE, noretval
|
||||
jalr t9
|
||||
REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
|
||||
+#ifndef __mips_soft_float
|
||||
s.d $f0, 0(t0)
|
||||
+#else
|
||||
+ REG_S v1, 4(t0)
|
||||
+ REG_S v0, 0(t0)
|
||||
+#endif
|
||||
b epilogue
|
||||
|
||||
noretval:
|
||||
@@ -261,9 +274,11 @@ $LCFI7:
|
||||
li $13, 1 # FFI_O32
|
||||
bne $16, $13, 1f # Skip fp save if FFI_O32_SOFT_FLOAT
|
||||
|
||||
+#ifndef __mips_soft_float
|
||||
# Store all possible float/double registers.
|
||||
s.d $f12, FA_0_0_OFF2($fp)
|
||||
s.d $f14, FA_1_0_OFF2($fp)
|
||||
+#endif
|
||||
1:
|
||||
# Call ffi_closure_mips_inner_O32 to do the work.
|
||||
la t9, ffi_closure_mips_inner_O32
|
||||
@@ -281,6 +296,7 @@ $LCFI7:
|
||||
li $13, 1 # FFI_O32
|
||||
bne $16, $13, 1f # Skip fp restore if FFI_O32_SOFT_FLOAT
|
||||
|
||||
+#ifndef __mips_soft_float
|
||||
li $9, FFI_TYPE_FLOAT
|
||||
l.s $f0, V0_OFF2($fp)
|
||||
beq $8, $9, closure_done
|
||||
@@ -288,6 +304,7 @@ $LCFI7:
|
||||
li $9, FFI_TYPE_DOUBLE
|
||||
l.d $f0, V0_OFF2($fp)
|
||||
beq $8, $9, closure_done
|
||||
+#endif
|
||||
1:
|
||||
REG_L $3, V1_OFF2($fp)
|
||||
REG_L $2, V0_OFF2($fp)
|
||||
--
|
||||
2.16.3
|
||||
|
||||
@ -1,33 +0,0 @@
|
||||
commit 548d9a008ff265e9eaa3c7e0e6e301c6bd5645e6
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Fri Dec 12 17:01:57 2014 +0000
|
||||
|
||||
gcc: don't clobber stamp-bits with a symlink to itself
|
||||
|
||||
Several versions of gcc have an issue in libstdc++v3 where the build may
|
||||
clobber stamp-bits with a link to itself. This doesn't manifest itself
|
||||
on all systems. On several Ubuntu systems, this doesn't appear to be a
|
||||
problem, but it is an issue on Fedora 16 systems.
|
||||
|
||||
To fix the issue, we'll simply filter out stamp-bits from the symlinks
|
||||
to be generated.
|
||||
|
||||
Note: gcc 4.4.7 is unaffected by this issue, so no fix is necessary
|
||||
there.
|
||||
|
||||
Signed-off-by: John Szakmeister <john@szakmeister.net>
|
||||
|
||||
SVN-Revision: 43669
|
||||
|
||||
|
||||
--- a/libstdc++-v3/include/Makefile.in
|
||||
+++ b/libstdc++-v3/include/Makefile.in
|
||||
@@ -1474,7 +1474,7 @@ stamp-bits: ${bits_headers}
|
||||
@$(STAMP) stamp-bits
|
||||
|
||||
stamp-bits-sup: stamp-bits ${bits_sup_headers}
|
||||
- @-cd ${bits_builddir} && $(LN_S) $? . 2>/dev/null
|
||||
+ @-cd ${bits_builddir} && $(LN_S) $(filter-out stamp-bits,$?) . 2>/dev/null
|
||||
@$(STAMP) stamp-bits-sup
|
||||
|
||||
stamp-c_base: ${c_base_headers}
|
||||
@ -1,181 +0,0 @@
|
||||
commit 331735a357a73c7b8adc205241ac3cc6543d985e
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Tue Nov 17 12:38:22 2015 +0000
|
||||
|
||||
gcc: add a patch to 5.x that supports translation of __FILE__ paths
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
|
||||
SVN-Revision: 47490
|
||||
|
||||
Forward ported from attachment to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47047
|
||||
|
||||
--- a/gcc/c-family/c-opts.c
|
||||
+++ b/gcc/c-family/c-opts.c
|
||||
@@ -588,6 +588,10 @@ c_common_handle_option (size_t scode, co
|
||||
add_path (xstrdup (arg), SYSTEM, 0, true);
|
||||
break;
|
||||
|
||||
+ case OPT_iremap:
|
||||
+ add_cpp_remap_path (arg);
|
||||
+ break;
|
||||
+
|
||||
case OPT_iwithprefix:
|
||||
add_prefixed_path (arg, SYSTEM);
|
||||
break;
|
||||
--- a/gcc/c-family/c.opt
|
||||
+++ b/gcc/c-family/c.opt
|
||||
@@ -1825,6 +1825,10 @@ iquote
|
||||
C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
|
||||
-iquote <dir> Add <dir> to the end of the quote include path.
|
||||
|
||||
+iremap
|
||||
+C ObjC C++ ObjC++ Joined Separate
|
||||
+-iremap <src:dst> Convert <src> to <dst> if it occurs as prefix in __FILE__.
|
||||
+
|
||||
iwithprefix
|
||||
C ObjC C++ ObjC++ Joined Separate
|
||||
-iwithprefix <dir> Add <dir> to the end of the system include path.
|
||||
--- a/gcc/doc/cpp.texi
|
||||
+++ b/gcc/doc/cpp.texi
|
||||
@@ -4272,6 +4272,7 @@ Refer to the GCC manual for full documen
|
||||
@c man begin SYNOPSIS
|
||||
cpp [@option{-D}@var{macro}[=@var{defn}]@dots{}] [@option{-U}@var{macro}]
|
||||
[@option{-I}@var{dir}@dots{}] [@option{-iquote}@var{dir}@dots{}]
|
||||
+ [@option{-iremap}@var{src}:@var{dst}]
|
||||
[@option{-M}|@option{-MM}] [@option{-MG}] [@option{-MF} @var{filename}]
|
||||
[@option{-MP}] [@option{-MQ} @var{target}@dots{}]
|
||||
[@option{-MT} @var{target}@dots{}]
|
||||
--- a/gcc/doc/cppopts.texi
|
||||
+++ b/gcc/doc/cppopts.texi
|
||||
@@ -220,6 +220,12 @@ extensions @samp{.i}, @samp{.ii} or @sam
|
||||
extensions that GCC uses for preprocessed files created by
|
||||
@option{-save-temps}.
|
||||
|
||||
+@item -iremap @var{src}:@var{dst}
|
||||
+@opindex iremap
|
||||
+Replace the prefix @var{src} in __FILE__ with @var{dst} at expansion time.
|
||||
+This option can be specified more than once. Processing stops at the first
|
||||
+match.
|
||||
+
|
||||
@item -fdirectives-only
|
||||
@opindex fdirectives-only
|
||||
When preprocessing, handle directives, but do not expand macros.
|
||||
--- a/gcc/doc/invoke.texi
|
||||
+++ b/gcc/doc/invoke.texi
|
||||
@@ -11871,6 +11871,12 @@ by @option{-fplugin=@var{name}} instead
|
||||
@option{-fplugin=@var{path}/@var{name}.so}. This option is not meant
|
||||
to be used by the user, but only passed by the driver.
|
||||
|
||||
+@item -iremap @var{src}:@var{dst}
|
||||
+@opindex iremap
|
||||
+Replace the prefix @var{src} in __FILE__ with @var{dst} at expansion time.
|
||||
+This option can be specified more than once. Processing stops at the first
|
||||
+match.
|
||||
+
|
||||
@item -L@var{dir}
|
||||
@opindex L
|
||||
Add directory @var{dir} to the list of directories to be searched
|
||||
--- a/libcpp/include/cpplib.h
|
||||
+++ b/libcpp/include/cpplib.h
|
||||
@@ -820,6 +820,9 @@ extern void cpp_set_lang (cpp_reader *,
|
||||
/* Set the include paths. */
|
||||
extern void cpp_set_include_chains (cpp_reader *, cpp_dir *, cpp_dir *, int);
|
||||
|
||||
+/* Provide src:dst pair for __FILE__ remapping. */
|
||||
+extern void add_cpp_remap_path (const char *);
|
||||
+
|
||||
/* Call these to get pointers to the options, callback, and deps
|
||||
structures for a given reader. These pointers are good until you
|
||||
call cpp_finish on that reader. You can either edit the callbacks
|
||||
--- a/libcpp/macro.c
|
||||
+++ b/libcpp/macro.c
|
||||
@@ -227,6 +227,64 @@ static const char * const monthnames[] =
|
||||
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
|
||||
};
|
||||
|
||||
+static size_t remap_pairs;
|
||||
+static char **remap_src;
|
||||
+static char **remap_dst;
|
||||
+
|
||||
+void
|
||||
+add_cpp_remap_path (const char *arg)
|
||||
+{
|
||||
+ const char *arg_dst;
|
||||
+ size_t len;
|
||||
+
|
||||
+ arg_dst = strchr(arg, ':');
|
||||
+ if (arg_dst == NULL)
|
||||
+ {
|
||||
+ fprintf(stderr, "Invalid argument for -iremap\n");
|
||||
+ exit(1);
|
||||
+ }
|
||||
+
|
||||
+ len = arg_dst - arg;
|
||||
+ ++arg_dst;
|
||||
+
|
||||
+ remap_src = (char **) xrealloc(remap_src, sizeof(char *) * (remap_pairs + 1));
|
||||
+ remap_dst = (char **) xrealloc(remap_dst, sizeof(char *) * (remap_pairs + 1));
|
||||
+
|
||||
+ remap_src[remap_pairs] = (char *) xmalloc(len + 1);
|
||||
+ memcpy(remap_src[remap_pairs], arg, len);
|
||||
+ remap_src[remap_pairs][len] = '\0';
|
||||
+ remap_dst[remap_pairs] = xstrdup(arg_dst);
|
||||
+ ++remap_pairs;
|
||||
+}
|
||||
+
|
||||
+static const char *
|
||||
+cpp_remap_file (const char *arg, char **tmp_name)
|
||||
+{
|
||||
+ char *result;
|
||||
+ size_t i, len;
|
||||
+
|
||||
+ for (i = 0; i < remap_pairs; ++i)
|
||||
+ {
|
||||
+ len = strlen (remap_src[i]);
|
||||
+ if (strncmp (remap_src[i], arg, len))
|
||||
+ continue;
|
||||
+ if (arg[len] == '\0')
|
||||
+ return xstrdup (remap_dst[i]);
|
||||
+ if (arg[len] != '/')
|
||||
+ continue;
|
||||
+ arg += len;
|
||||
+ len = strlen (remap_dst[i]);
|
||||
+ result = (char *) xmalloc (len + strlen (arg) + 1);
|
||||
+ memcpy(result, remap_dst[i], len);
|
||||
+ strcpy(result + len, arg);
|
||||
+ *tmp_name = result;
|
||||
+
|
||||
+ return result;
|
||||
+ }
|
||||
+
|
||||
+ return arg;
|
||||
+}
|
||||
+
|
||||
/* Helper function for builtin_macro. Returns the text generated by
|
||||
a builtin macro. */
|
||||
const uchar *
|
||||
@@ -290,6 +348,7 @@ _cpp_builtin_macro_text (cpp_reader *pfi
|
||||
{
|
||||
unsigned int len;
|
||||
const char *name;
|
||||
+ char *tmp_name = NULL;
|
||||
uchar *buf;
|
||||
|
||||
if (node->value.builtin == BT_FILE)
|
||||
@@ -301,6 +360,7 @@ _cpp_builtin_macro_text (cpp_reader *pfi
|
||||
if (!name)
|
||||
abort ();
|
||||
}
|
||||
+ name = cpp_remap_file (name, &tmp_name);
|
||||
len = strlen (name);
|
||||
buf = _cpp_unaligned_alloc (pfile, len * 2 + 3);
|
||||
result = buf;
|
||||
@@ -308,6 +368,7 @@ _cpp_builtin_macro_text (cpp_reader *pfi
|
||||
buf = cpp_quote_string (buf + 1, (const unsigned char *) name, len);
|
||||
*buf++ = '"';
|
||||
*buf = '\0';
|
||||
+ free (tmp_name);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1,73 +0,0 @@
|
||||
From dda6b050cd74a352670787a294596a9c56c21327 Mon Sep 17 00:00:00 2001
|
||||
From: Yousong Zhou <yszhou4tech@gmail.com>
|
||||
Date: Fri, 4 May 2018 18:20:53 +0800
|
||||
Subject: [PATCH] gotools: fix compilation when making cross compiler
|
||||
|
||||
libgo is "the runtime support library for the Go programming language.
|
||||
This library is intended for use with the Go frontend."
|
||||
|
||||
gccgo will link target files with libgo.so which depends on libgcc_s.so.1, but
|
||||
the linker will complain that it cannot find it. That's because shared libgcc
|
||||
is not present in the install directory yet. libgo.so was made without problem
|
||||
because gcc will emit -lgcc_s when compiled with -shared option. When gotools
|
||||
were being made, it was supplied with -static-libgcc thus no link option was
|
||||
provided. Check LIBGO in gcc/go/gcc-spec.c for how gccgo make a builtin spec
|
||||
for linking with libgo.so
|
||||
|
||||
- GccgoCrossCompilation, https://github.com/golang/go/wiki/GccgoCrossCompilation
|
||||
- Cross-building instructions, http://www.eglibc.org/archives/patches/msg00078.html
|
||||
|
||||
When 3-pass GCC compilation is used, shared libgcc runtime libraries will be
|
||||
available after gcc pass2 completed and will meet the gotools link requirement
|
||||
at gcc pass3
|
||||
---
|
||||
gotools/Makefile.am | 4 +++-
|
||||
gotools/Makefile.in | 4 +++-
|
||||
2 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gotools/Makefile.am b/gotools/Makefile.am
|
||||
index 5f3940a278b..9c22f5df103 100644
|
||||
--- a/gotools/Makefile.am
|
||||
+++ b/gotools/Makefile.am
|
||||
@@ -26,6 +26,7 @@ PWD_COMMAND = $${PWDCMD-pwd}
|
||||
STAMP = echo timestamp >
|
||||
|
||||
libgodir = ../$(target_noncanonical)/libgo
|
||||
+libgccdir = ../$(target_noncanonical)/libgcc
|
||||
LIBGODEP = $(libgodir)/libgo.la
|
||||
|
||||
if NATIVE
|
||||
@@ -38,7 +39,8 @@ endif
|
||||
GOCFLAGS = $(CFLAGS_FOR_TARGET)
|
||||
GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS)
|
||||
|
||||
-AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs
|
||||
+AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs \
|
||||
+ -L $(libgccdir) -L $(libgccdir)/.libs -lgcc_s
|
||||
GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@
|
||||
|
||||
cmdsrcdir = $(srcdir)/../libgo/go/cmd
|
||||
diff --git a/gotools/Makefile.in b/gotools/Makefile.in
|
||||
index 4386576b011..0bdd9290e01 100644
|
||||
--- a/gotools/Makefile.in
|
||||
+++ b/gotools/Makefile.in
|
||||
@@ -252,13 +252,15 @@ mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
|
||||
PWD_COMMAND = $${PWDCMD-pwd}
|
||||
STAMP = echo timestamp >
|
||||
libgodir = ../$(target_noncanonical)/libgo
|
||||
+libgccdir = ../$(target_noncanonical)/libgcc
|
||||
LIBGODEP = $(libgodir)/libgo.la
|
||||
@NATIVE_FALSE@GOCOMPILER = $(GOC)
|
||||
|
||||
# Use the compiler we just built.
|
||||
@NATIVE_TRUE@GOCOMPILER = $(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET)
|
||||
GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS)
|
||||
-AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs
|
||||
+AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs \
|
||||
+ -L $(libgccdir) -L $(libgccdir)/.libs -lgcc_s
|
||||
GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@
|
||||
cmdsrcdir = $(srcdir)/../libgo/go/cmd
|
||||
go_cmd_go_files = \
|
||||
--
|
||||
2.16.3
|
||||
|
||||
@ -1,24 +0,0 @@
|
||||
commit 81cc26c706b2bc8c8c1eb1a322e5c5157900836e
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Sun Oct 19 21:45:51 2014 +0000
|
||||
|
||||
gcc: do not assume that the Mac OS X filesystem is case insensitive
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
|
||||
SVN-Revision: 42973
|
||||
|
||||
--- a/include/filenames.h
|
||||
+++ b/include/filenames.h
|
||||
@@ -43,11 +43,6 @@ extern "C" {
|
||||
# define IS_DIR_SEPARATOR(c) IS_DOS_DIR_SEPARATOR (c)
|
||||
# define IS_ABSOLUTE_PATH(f) IS_DOS_ABSOLUTE_PATH (f)
|
||||
#else /* not DOSish */
|
||||
-# if defined(__APPLE__)
|
||||
-# ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM
|
||||
-# define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1
|
||||
-# endif
|
||||
-# endif /* __APPLE__ */
|
||||
# define HAS_DRIVE_SPEC(f) (0)
|
||||
# define IS_DIR_SEPARATOR(c) IS_UNIX_DIR_SEPARATOR (c)
|
||||
# define IS_ABSOLUTE_PATH(f) IS_UNIX_ABSOLUTE_PATH (f)
|
||||
@ -1,35 +0,0 @@
|
||||
commit 098bd91f5eae625c7d2ee621e10930fc4434e5e2
|
||||
Author: Luka Perkov <luka@openwrt.org>
|
||||
Date: Tue Feb 26 16:16:33 2013 +0000
|
||||
|
||||
gcc: don't build documentation
|
||||
|
||||
This closes #13039.
|
||||
|
||||
Signed-off-by: Luka Perkov <luka@openwrt.org>
|
||||
|
||||
SVN-Revision: 35807
|
||||
|
||||
--- a/gcc/Makefile.in
|
||||
+++ b/gcc/Makefile.in
|
||||
@@ -3203,18 +3203,10 @@ doc/gcc.info: $(TEXI_GCC_FILES)
|
||||
doc/gccint.info: $(TEXI_GCCINT_FILES)
|
||||
doc/cppinternals.info: $(TEXI_CPPINT_FILES)
|
||||
|
||||
-doc/%.info: %.texi
|
||||
- if [ x$(BUILD_INFO) = xinfo ]; then \
|
||||
- $(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \
|
||||
- -I $(gcc_docdir)/include -o $@ $<; \
|
||||
- fi
|
||||
+doc/%.info:
|
||||
|
||||
# Duplicate entry to handle renaming of gccinstall.info
|
||||
-doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES)
|
||||
- if [ x$(BUILD_INFO) = xinfo ]; then \
|
||||
- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
|
||||
- -I $(gcc_docdir)/include -o $@ $<; \
|
||||
- fi
|
||||
+doc/gccinstall.info:
|
||||
|
||||
doc/cpp.dvi: $(TEXI_CPP_FILES)
|
||||
doc/gcc.dvi: $(TEXI_GCC_FILES)
|
||||
@ -1,20 +0,0 @@
|
||||
Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84790.
|
||||
MIPS16 functions have a static assembler prologue which clobbers
|
||||
registers v0 and v1. Add these register clobbers to function call
|
||||
instructions.
|
||||
|
||||
--- a/gcc/config/mips/mips.c
|
||||
+++ b/gcc/config/mips/mips.c
|
||||
@@ -3131,6 +3131,12 @@ mips_emit_call_insn (rtx pattern, rtx or
|
||||
emit_insn (gen_update_got_version ());
|
||||
}
|
||||
|
||||
+ if (TARGET_MIPS16 && TARGET_USE_GOT)
|
||||
+ {
|
||||
+ clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS16_PIC_TEMP);
|
||||
+ clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS_PROLOGUE_TEMP (word_mode));
|
||||
+ }
|
||||
+
|
||||
if (TARGET_MIPS16
|
||||
&& TARGET_EXPLICIT_RELOCS
|
||||
&& TARGET_CALL_CLOBBERED_GP)
|
||||
@ -1,13 +0,0 @@
|
||||
--- a/gcc/gcc.c
|
||||
+++ b/gcc/gcc.c
|
||||
@@ -876,7 +876,9 @@ proper position among the other output f
|
||||
#endif
|
||||
|
||||
#ifndef LINK_SSP_SPEC
|
||||
-#ifdef TARGET_LIBC_PROVIDES_SSP
|
||||
+#if DEFAULT_LIBC == LIBC_MUSL
|
||||
+#define LINK_SSP_SPEC "-lssp_nonshared"
|
||||
+#elif defined(TARGET_LIBC_PROVIDES_SSP)
|
||||
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
|
||||
"|fstack-protector-strong|fstack-protector-explicit:}"
|
||||
#else
|
||||
@ -1,21 +0,0 @@
|
||||
commit ecf7671b769fe96f7b5134be442089f8bdba55d2
|
||||
Author: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Thu Aug 4 20:29:45 2016 +0200
|
||||
|
||||
gcc: add a patch to generate better code with Os on mips
|
||||
|
||||
Also happens to reduce compressed code size a bit
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/gcc/config/mips/mips.c
|
||||
+++ b/gcc/config/mips/mips.c
|
||||
@@ -19994,7 +19994,7 @@ mips_option_override (void)
|
||||
flag_pcc_struct_return = 0;
|
||||
|
||||
/* Decide which rtx_costs structure to use. */
|
||||
- if (optimize_size)
|
||||
+ if (0 && optimize_size)
|
||||
mips_cost = &mips_rtx_cost_optimize_size;
|
||||
else
|
||||
mips_cost = &mips_rtx_cost_data[mips_tune];
|
||||
@ -1,33 +0,0 @@
|
||||
commit 8570c4be394cff7282f332f97da2ff569a927ddb
|
||||
Author: Imre Kaloz <kaloz@openwrt.org>
|
||||
Date: Wed Feb 2 20:06:12 2011 +0000
|
||||
|
||||
fixup arm soft-float symbols
|
||||
|
||||
SVN-Revision: 25325
|
||||
|
||||
--- a/libgcc/config/arm/t-linux
|
||||
+++ b/libgcc/config/arm/t-linux
|
||||
@@ -1,6 +1,10 @@
|
||||
LIB1ASMSRC = arm/lib1funcs.S
|
||||
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
|
||||
- _ctzsi2 _arm_addsubdf3 _arm_addsubsf3
|
||||
+ _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 \
|
||||
+ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
|
||||
+ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \
|
||||
+ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \
|
||||
+ _arm_fixsfsi _arm_fixunssfsi
|
||||
|
||||
# Just for these, we omit the frame pointer since it makes such a big
|
||||
# difference.
|
||||
--- a/gcc/config/arm/linux-elf.h
|
||||
+++ b/gcc/config/arm/linux-elf.h
|
||||
@@ -58,8 +58,6 @@
|
||||
%{shared:-lc} \
|
||||
%{!shared:%{profile:-lc_p}%{!profile:-lc}}"
|
||||
|
||||
-#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
|
||||
-
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
|
||||
#define LINUX_TARGET_LINK_SPEC "%{h*} \
|
||||
@ -1,44 +0,0 @@
|
||||
commit c96312958c0621e72c9b32da5bc224ffe2161384
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Mon Oct 19 23:26:09 2009 +0000
|
||||
|
||||
gcc: create a proper libgcc_pic.a static library for relinking (4.3.3+ for now, backport will follow)
|
||||
|
||||
SVN-Revision: 18086
|
||||
|
||||
--- a/libgcc/Makefile.in
|
||||
+++ b/libgcc/Makefile.in
|
||||
@@ -927,11 +927,12 @@ $(libgcov-driver-objects): %$(objext): $
|
||||
|
||||
# Static libraries.
|
||||
libgcc.a: $(libgcc-objects)
|
||||
+libgcc_pic.a: $(libgcc-s-objects)
|
||||
libgcov.a: $(libgcov-objects)
|
||||
libunwind.a: $(libunwind-objects)
|
||||
libgcc_eh.a: $(libgcc-eh-objects)
|
||||
|
||||
-libgcc.a libgcov.a libunwind.a libgcc_eh.a:
|
||||
+libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a:
|
||||
-rm -f $@
|
||||
|
||||
objects="$(objects)"; \
|
||||
@@ -955,7 +956,7 @@ all: libunwind.a
|
||||
endif
|
||||
|
||||
ifeq ($(enable_shared),yes)
|
||||
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
|
||||
+all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT)
|
||||
ifneq ($(LIBUNWIND),)
|
||||
all: libunwind$(SHLIB_EXT)
|
||||
libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
|
||||
@@ -1161,6 +1162,10 @@ install-shared:
|
||||
chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
|
||||
|
||||
+ $(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/
|
||||
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
|
||||
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
|
||||
+
|
||||
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
|
||||
@shlib_base_name@,libgcc_s,$(subst \
|
||||
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
|
||||
@ -1,28 +0,0 @@
|
||||
commit 7edc8ca5456d9743dd0075eb3cc5b04f4f24c8cc
|
||||
Author: Imre Kaloz <kaloz@openwrt.org>
|
||||
Date: Wed Feb 2 19:34:36 2011 +0000
|
||||
|
||||
add armv4 fixup patches
|
||||
|
||||
SVN-Revision: 25322
|
||||
|
||||
|
||||
--- a/gcc/config/arm/linux-eabi.h
|
||||
+++ b/gcc/config/arm/linux-eabi.h
|
||||
@@ -91,10 +91,15 @@
|
||||
#define MUSL_DYNAMIC_LINKER \
|
||||
"/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1"
|
||||
|
||||
+/* For armv4 we pass --fix-v4bx to linker to support EABI */
|
||||
+#undef TARGET_FIX_V4BX_SPEC
|
||||
+#define TARGET_FIX_V4BX_SPEC " %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*"\
|
||||
+ "|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx}"
|
||||
+
|
||||
/* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
|
||||
use the GNU/Linux version, not the generic BPABI version. */
|
||||
#undef LINK_SPEC
|
||||
-#define LINK_SPEC EABI_LINK_SPEC \
|
||||
+#define LINK_SPEC EABI_LINK_SPEC TARGET_FIX_V4BX_SPEC \
|
||||
LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \
|
||||
LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
|
||||
|
||||
@ -1,54 +0,0 @@
|
||||
commit dcfc40358b5a3cae7320c17f8d1cebd5ad5540cd
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Sun Feb 12 20:25:47 2012 +0000
|
||||
|
||||
gcc 4.6: port over the missing patch 850-use_shared_libgcc.patch to prevent libgcc crap from leaking into every single binary
|
||||
|
||||
SVN-Revision: 30486
|
||||
--- a/gcc/config/arm/linux-eabi.h
|
||||
+++ b/gcc/config/arm/linux-eabi.h
|
||||
@@ -129,10 +129,6 @@
|
||||
"%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \
|
||||
LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC)
|
||||
|
||||
-/* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we
|
||||
- do not use -lfloat. */
|
||||
-#undef LIBGCC_SPEC
|
||||
-
|
||||
/* Clear the instruction cache from `beg' to `end'. This is
|
||||
implemented in lib1funcs.S, so ensure an error if this definition
|
||||
is used. */
|
||||
--- a/gcc/config/linux.h
|
||||
+++ b/gcc/config/linux.h
|
||||
@@ -66,6 +66,10 @@ see the files COPYING3 and COPYING.RUNTI
|
||||
builtin_version ("CRuntime_Musl"); \
|
||||
} while (0)
|
||||
|
||||
+#ifndef LIBGCC_SPEC
|
||||
+#define LIBGCC_SPEC "%{static|static-libgcc:-lgcc}%{!static:%{!static-libgcc:-lgcc_s}}"
|
||||
+#endif
|
||||
+
|
||||
/* Determine which dynamic linker to use depending on whether GLIBC or
|
||||
uClibc or Bionic or musl is the default C library and whether
|
||||
-muclibc or -mglibc or -mbionic or -mmusl has been passed to change
|
||||
--- a/libgcc/mkmap-symver.awk
|
||||
+++ b/libgcc/mkmap-symver.awk
|
||||
@@ -136,5 +136,5 @@ function output(lib) {
|
||||
else if (inherit[lib])
|
||||
printf("} %s;\n", inherit[lib]);
|
||||
else
|
||||
- printf ("\n local:\n\t*;\n};\n");
|
||||
+ printf ("\n\t*;\n};\n");
|
||||
}
|
||||
--- a/gcc/config/rs6000/linux.h
|
||||
+++ b/gcc/config/rs6000/linux.h
|
||||
@@ -62,6 +62,9 @@
|
||||
#undef CPP_OS_DEFAULT_SPEC
|
||||
#define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux)"
|
||||
|
||||
+#undef LIBGCC_SPEC
|
||||
+#define LIBGCC_SPEC "%{!static:%{!static-libgcc:-lgcc_s}} -lgcc"
|
||||
+
|
||||
#undef LINK_SHLIB_SPEC
|
||||
#define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}} \
|
||||
%{static-pie:-static -pie --no-dynamic-linker -z text}"
|
||||
@ -1,22 +0,0 @@
|
||||
commit 64661de100da1ec1061ef3e5e400285dce115e6b
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Sun May 10 13:16:35 2015 +0000
|
||||
|
||||
gcc: add some size optimization patches
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
|
||||
SVN-Revision: 45664
|
||||
|
||||
--- a/libgcc/config/t-libunwind
|
||||
+++ b/libgcc/config/t-libunwind
|
||||
@@ -2,8 +2,7 @@
|
||||
|
||||
HOST_LIBGCC2_CFLAGS += -DUSE_GAS_SYMVER
|
||||
|
||||
-LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \
|
||||
- $(srcdir)/unwind-compat.c $(srcdir)/unwind-dw2-fde-compat.c
|
||||
+LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
|
||||
LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
|
||||
|
||||
# Override the default value from t-slibgcc-elf-ver and mention -lunwind
|
||||
@ -1,11 +0,0 @@
|
||||
--- a/gcc/config/rs6000/rs6000.c
|
||||
+++ b/gcc/config/rs6000/rs6000.c
|
||||
@@ -24474,7 +24474,7 @@ rs6000_savres_strategy (rs6000_stack_t *
|
||||
/* Define cutoff for using out-of-line functions to save registers. */
|
||||
if (DEFAULT_ABI == ABI_V4 || TARGET_ELF)
|
||||
{
|
||||
- if (!optimize_size)
|
||||
+ if (1)
|
||||
{
|
||||
strategy |= SAVE_INLINE_FPRS | REST_INLINE_FPRS;
|
||||
strategy |= SAVE_INLINE_GPRS | REST_INLINE_GPRS;
|
||||
@ -1,11 +0,0 @@
|
||||
--- a/libgcc/crtstuff.c
|
||||
+++ b/libgcc/crtstuff.c
|
||||
@@ -152,7 +152,7 @@ call_ ## FUNC (void) \
|
||||
#endif
|
||||
|
||||
#if !defined(USE_TM_CLONE_REGISTRY) && defined(OBJECT_FORMAT_ELF)
|
||||
-# define USE_TM_CLONE_REGISTRY 1
|
||||
+# define USE_TM_CLONE_REGISTRY 0
|
||||
#endif
|
||||
|
||||
/* We do not want to add the weak attribute to the declarations of these
|
||||
@ -1,9 +0,0 @@
|
||||
--- a/libgcc/config/mips/t-mips16
|
||||
+++ b/libgcc/config/mips/t-mips16
|
||||
@@ -43,3 +43,6 @@ SYNC_CFLAGS = -mno-mips16
|
||||
|
||||
# Version these symbols if building libgcc.so.
|
||||
SHLIB_MAPFILES += $(srcdir)/config/mips/libgcc-mips16.ver
|
||||
+
|
||||
+CRTSTUFF_T_CFLAGS += -mno-mips16
|
||||
+CRTSTUFF_T_CFLAGS_S += -mno-mips16
|
||||
@ -1,146 +0,0 @@
|
||||
commit 99368862e44740ff4fd33760893f04e14f9dbdf1
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Tue Jul 31 00:52:27 2007 +0000
|
||||
|
||||
Port the mbsd_multi patch from freewrt, which adds -fhonour-copts. This will emit warnings in packages that don't use our target cflags properly
|
||||
|
||||
SVN-Revision: 8256
|
||||
|
||||
This patch brings over a feature from MirBSD:
|
||||
* -fhonour-copts
|
||||
If this option is not given, it's warned (depending
|
||||
on environment variables). This is to catch errors
|
||||
of misbuilt packages which override CFLAGS themselves.
|
||||
|
||||
This patch was authored by Thorsten Glaser <tg at mirbsd.de>
|
||||
with copyright assignment to the FSF in effect.
|
||||
|
||||
--- a/gcc/c-family/c-opts.c
|
||||
+++ b/gcc/c-family/c-opts.c
|
||||
@@ -107,6 +107,9 @@ static dump_flags_t original_dump_flags;
|
||||
/* Whether any standard preincluded header has been preincluded. */
|
||||
static bool done_preinclude;
|
||||
|
||||
+/* Check if a port honours COPTS. */
|
||||
+static int honour_copts = 0;
|
||||
+
|
||||
static void handle_OPT_d (const char *);
|
||||
static void set_std_cxx98 (int);
|
||||
static void set_std_cxx11 (int);
|
||||
@@ -452,6 +455,12 @@ c_common_handle_option (size_t scode, co
|
||||
flag_no_builtin = !value;
|
||||
break;
|
||||
|
||||
+ case OPT_fhonour_copts:
|
||||
+ if (c_language == clk_c) {
|
||||
+ honour_copts++;
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
case OPT_fconstant_string_class_:
|
||||
constant_string_class_name = arg;
|
||||
break;
|
||||
@@ -1138,6 +1147,47 @@ c_common_init (void)
|
||||
return false;
|
||||
}
|
||||
|
||||
+ if (c_language == clk_c) {
|
||||
+ char *ev = getenv ("GCC_HONOUR_COPTS");
|
||||
+ int evv;
|
||||
+ if (ev == NULL)
|
||||
+ evv = -1;
|
||||
+ else if ((*ev == '0') || (*ev == '\0'))
|
||||
+ evv = 0;
|
||||
+ else if (*ev == '1')
|
||||
+ evv = 1;
|
||||
+ else if (*ev == '2')
|
||||
+ evv = 2;
|
||||
+ else if (*ev == 's')
|
||||
+ evv = -1;
|
||||
+ else {
|
||||
+ warning (0, "unknown GCC_HONOUR_COPTS value, assuming 1");
|
||||
+ evv = 1; /* maybe depend this on something like MIRBSD_NATIVE? */
|
||||
+ }
|
||||
+ if (evv == 1) {
|
||||
+ if (honour_copts == 0) {
|
||||
+ error ("someone does not honour COPTS at all in lenient mode");
|
||||
+ return false;
|
||||
+ } else if (honour_copts != 1) {
|
||||
+ warning (0, "someone does not honour COPTS correctly, passed %d times",
|
||||
+ honour_copts);
|
||||
+ }
|
||||
+ } else if (evv == 2) {
|
||||
+ if (honour_copts == 0) {
|
||||
+ error ("someone does not honour COPTS at all in strict mode");
|
||||
+ return false;
|
||||
+ } else if (honour_copts != 1) {
|
||||
+ error ("someone does not honour COPTS correctly, passed %d times",
|
||||
+ honour_copts);
|
||||
+ return false;
|
||||
+ }
|
||||
+ } else if (evv == 0) {
|
||||
+ if (honour_copts != 1)
|
||||
+ inform (UNKNOWN_LOCATION, "someone does not honour COPTS correctly, passed %d times",
|
||||
+ honour_copts);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
return true;
|
||||
}
|
||||
|
||||
--- a/gcc/c-family/c.opt
|
||||
+++ b/gcc/c-family/c.opt
|
||||
@@ -1521,6 +1521,9 @@ C++ ObjC++ Optimization Alias(fexception
|
||||
fhonor-std
|
||||
C++ ObjC++ Deprecated
|
||||
|
||||
+fhonour-copts
|
||||
+C ObjC C++ ObjC++ RejectNegative
|
||||
+
|
||||
fhosted
|
||||
C ObjC
|
||||
Assume normal C execution environment.
|
||||
--- a/gcc/common.opt
|
||||
+++ b/gcc/common.opt
|
||||
@@ -1589,6 +1589,9 @@ fguess-branch-probability
|
||||
Common Report Var(flag_guess_branch_prob) Optimization
|
||||
Enable guessing of branch probabilities.
|
||||
|
||||
+fhonour-copts
|
||||
+Common RejectNegative
|
||||
+
|
||||
; Nonzero means ignore `#ident' directives. 0 means handle them.
|
||||
; Generate position-independent code for executables if possible
|
||||
; On SVR4 targets, it also controls whether or not to emit a
|
||||
--- a/gcc/doc/invoke.texi
|
||||
+++ b/gcc/doc/invoke.texi
|
||||
@@ -7666,6 +7666,17 @@ This option is only supported for C and
|
||||
@option{-Wall} and by @option{-Wpedantic}, which can be disabled with
|
||||
@option{-Wno-pointer-sign}.
|
||||
|
||||
+@item -fhonour-copts
|
||||
+@opindex fhonour-copts
|
||||
+If @env{GCC_HONOUR_COPTS} is set to 1, abort if this option is not
|
||||
+given at least once, and warn if it is given more than once.
|
||||
+If @env{GCC_HONOUR_COPTS} is set to 2, abort if this option is not
|
||||
+given exactly once.
|
||||
+If @env{GCC_HONOUR_COPTS} is set to 0 or unset, warn if this option
|
||||
+is not given exactly once.
|
||||
+The warning is quelled if @env{GCC_HONOUR_COPTS} is set to @samp{s}.
|
||||
+This flag and environment variable only affect the C language.
|
||||
+
|
||||
@item -Wstack-protector
|
||||
@opindex Wstack-protector
|
||||
@opindex Wno-stack-protector
|
||||
--- a/gcc/opts.c
|
||||
+++ b/gcc/opts.c
|
||||
@@ -2314,6 +2314,9 @@ common_handle_option (struct gcc_options
|
||||
/* Currently handled in a prescan. */
|
||||
break;
|
||||
|
||||
+ case OPT_fhonour_copts:
|
||||
+ break;
|
||||
+
|
||||
case OPT_Werror:
|
||||
dc->warning_as_error_requested = value;
|
||||
break;
|
||||
@ -1,22 +0,0 @@
|
||||
Author: Jo-Philipp Wich <jow@openwrt.org>
|
||||
Date: Sat Apr 21 03:02:39 2012 +0000
|
||||
|
||||
gcc: add patch to make the getenv() spec function nonfatal if requested environment variable is unset
|
||||
|
||||
SVN-Revision: 31390
|
||||
|
||||
--- a/gcc/gcc.c
|
||||
+++ b/gcc/gcc.c
|
||||
@@ -9318,8 +9318,10 @@ getenv_spec_function (int argc, const ch
|
||||
}
|
||||
|
||||
if (!value)
|
||||
- fatal_error (input_location,
|
||||
- "environment variable %qs not defined", varname);
|
||||
+ {
|
||||
+ warning (input_location, "environment variable %qs not defined", varname);
|
||||
+ value = "";
|
||||
+ }
|
||||
|
||||
/* We have to escape every character of the environment variable so
|
||||
they are not interpreted as active spec characters. A
|
||||
@ -1,111 +0,0 @@
|
||||
From da45b3fde60095756f5f6030f6012c23a3d34429 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew McDonnell <bugs@andrewmcdonnell.net>
|
||||
Date: Fri, 3 Oct 2014 19:09:00 +0930
|
||||
Subject: Add .note.GNU-stack section
|
||||
|
||||
See http://lists.busybox.net/pipermail/uclibc/2014-October/048671.html
|
||||
Below copied from https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02430.html
|
||||
|
||||
Re: [Patch, MIPS] Add .note.GNU-stack section
|
||||
|
||||
From: Steve Ellcey <sellcey at mips dot com>
|
||||
|
||||
On Wed, 2014-09-10 at 10:15 -0700, Eric Christopher wrote:
|
||||
>
|
||||
>
|
||||
> On Wed, Sep 10, 2014 at 9:27 AM, <pinskia@gmail.com> wrote:
|
||||
|
||||
> This works except you did not update the assembly files in
|
||||
> libgcc or glibc. We (Cavium) have the same patch in our tree
|
||||
> for a few released versions.
|
||||
|
||||
> Mind just checking yours in then Andrew?
|
||||
|
||||
> Thanks!
|
||||
> -eric
|
||||
|
||||
I talked to Andrew about what files he changed in GCC and created and
|
||||
tested this new patch. Andrew also mentioned changing some assembly
|
||||
files in glibc but I don't see any use of '.section .note.GNU-stack' in
|
||||
any assembly files in glibc (for any platform) so I wasn't planning on
|
||||
creating a glibc to add them to mips glibc assembly language files.
|
||||
|
||||
OK to check in this patch?
|
||||
|
||||
Steve Ellcey
|
||||
sellcey@mips.com
|
||||
|
||||
|
||||
|
||||
2014-09-26 Steve Ellcey <sellcey@mips.com>
|
||||
---
|
||||
gcc/config/mips/mips.c | 3 +++
|
||||
libgcc/config/mips/crti.S | 4 ++++
|
||||
libgcc/config/mips/crtn.S | 3 +++
|
||||
libgcc/config/mips/mips16.S | 4 ++++
|
||||
libgcc/config/mips/vr4120-div.S | 4 ++++
|
||||
5 files changed, 18 insertions(+)
|
||||
|
||||
--- a/gcc/config/mips/mips.c
|
||||
+++ b/gcc/config/mips/mips.c
|
||||
@@ -22822,6 +22822,9 @@ mips_starting_frame_offset (void)
|
||||
#undef TARGET_STARTING_FRAME_OFFSET
|
||||
#define TARGET_STARTING_FRAME_OFFSET mips_starting_frame_offset
|
||||
|
||||
+#undef TARGET_ASM_FILE_END
|
||||
+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
|
||||
+
|
||||
struct gcc_target targetm = TARGET_INITIALIZER;
|
||||
|
||||
#include "gt-mips.h"
|
||||
--- a/libgcc/config/mips/crti.S
|
||||
+++ b/libgcc/config/mips/crti.S
|
||||
@@ -21,6 +21,10 @@ a copy of the GCC Runtime Library Except
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
+
|
||||
+/* An executable stack is *not* required for these functions. */
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+
|
||||
/* 4 slots for argument spill area. 1 for cpreturn, 1 for stack.
|
||||
Return spill offset of 40 and 20. Aligned to 16 bytes for n32. */
|
||||
|
||||
--- a/libgcc/config/mips/crtn.S
|
||||
+++ b/libgcc/config/mips/crtn.S
|
||||
@@ -21,6 +21,9 @@ a copy of the GCC Runtime Library Except
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
+/* An executable stack is *not* required for these functions. */
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+
|
||||
/* 4 slots for argument spill area. 1 for cpreturn, 1 for stack.
|
||||
Return spill offset of 40 and 20. Aligned to 16 bytes for n32. */
|
||||
|
||||
--- a/libgcc/config/mips/mips16.S
|
||||
+++ b/libgcc/config/mips/mips16.S
|
||||
@@ -48,6 +48,10 @@ see the files COPYING3 and COPYING.RUNTI
|
||||
values using the soft-float calling convention, but do the actual
|
||||
operation using the hard floating point instructions. */
|
||||
|
||||
+/* An executable stack is *not* required for these functions. */
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+ .previous
|
||||
+
|
||||
#if defined _MIPS_SIM && (_MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIO64)
|
||||
|
||||
/* This file contains 32-bit assembly code. */
|
||||
--- a/libgcc/config/mips/vr4120-div.S
|
||||
+++ b/libgcc/config/mips/vr4120-div.S
|
||||
@@ -26,6 +26,10 @@ see the files COPYING3 and COPYING.RUNTI
|
||||
-mfix-vr4120. div and ddiv do not give the correct result when one
|
||||
of the operands is negative. */
|
||||
|
||||
+/* An executable stack is *not* required for these functions. */
|
||||
+ .section .note.GNU-stack,"",%progbits
|
||||
+ .previous
|
||||
+
|
||||
.set nomips16
|
||||
|
||||
#define DIV \
|
||||
@ -1,168 +0,0 @@
|
||||
From c0c62fa4256f805389f16ebfc4a60cf789129b50 Mon Sep 17 00:00:00 2001
|
||||
From: BangLang Huang <banglang.huang@foxmail.com>
|
||||
Date: Wed, 9 Nov 2016 10:36:49 +0800
|
||||
Subject: [PATCH] libffi: fix MIPS softfloat build issue
|
||||
|
||||
Backported from github.com/libffi/libffi#272
|
||||
|
||||
Signed-off-by: BangLang Huang <banglang.huang@foxmail.com>
|
||||
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
|
||||
---
|
||||
libffi/src/mips/n32.S | 17 +++++++++++++++++
|
||||
libffi/src/mips/o32.S | 17 +++++++++++++++++
|
||||
2 files changed, 34 insertions(+)
|
||||
|
||||
--- a/libffi/src/mips/n32.S
|
||||
+++ b/libffi/src/mips/n32.S
|
||||
@@ -107,6 +107,16 @@ loadregs:
|
||||
|
||||
REG_L t6, 3*FFI_SIZEOF_ARG($fp) # load the flags word into t6.
|
||||
|
||||
+#ifdef __mips_soft_float
|
||||
+ REG_L a0, 0*FFI_SIZEOF_ARG(t9)
|
||||
+ REG_L a1, 1*FFI_SIZEOF_ARG(t9)
|
||||
+ REG_L a2, 2*FFI_SIZEOF_ARG(t9)
|
||||
+ REG_L a3, 3*FFI_SIZEOF_ARG(t9)
|
||||
+ REG_L a4, 4*FFI_SIZEOF_ARG(t9)
|
||||
+ REG_L a5, 5*FFI_SIZEOF_ARG(t9)
|
||||
+ REG_L a6, 6*FFI_SIZEOF_ARG(t9)
|
||||
+ REG_L a7, 7*FFI_SIZEOF_ARG(t9)
|
||||
+#else
|
||||
and t4, t6, ((1<<FFI_FLAG_BITS)-1)
|
||||
REG_L a0, 0*FFI_SIZEOF_ARG(t9)
|
||||
beqz t4, arg1_next
|
||||
@@ -193,6 +203,7 @@ arg7_next:
|
||||
arg8_doublep:
|
||||
l.d $f19, 7*FFI_SIZEOF_ARG(t9)
|
||||
arg8_next:
|
||||
+#endif
|
||||
|
||||
callit:
|
||||
# Load the function pointer
|
||||
@@ -214,6 +225,7 @@ retint:
|
||||
b epilogue
|
||||
|
||||
retfloat:
|
||||
+#ifndef __mips_soft_float
|
||||
bne t6, FFI_TYPE_FLOAT, retdouble
|
||||
jal t9
|
||||
REG_L t4, 4*FFI_SIZEOF_ARG($fp)
|
||||
@@ -272,6 +284,7 @@ retstruct_f_d:
|
||||
s.s $f0, 0(t4)
|
||||
s.d $f2, 8(t4)
|
||||
b epilogue
|
||||
+#endif
|
||||
|
||||
retstruct_d_soft:
|
||||
bne t6, FFI_TYPE_STRUCT_D_SOFT, retstruct_f_soft
|
||||
@@ -429,6 +442,7 @@ ffi_closure_N32:
|
||||
REG_S a6, A6_OFF2($sp)
|
||||
REG_S a7, A7_OFF2($sp)
|
||||
|
||||
+#ifndef __mips_soft_float
|
||||
# Store all possible float/double registers.
|
||||
s.d $f12, F12_OFF2($sp)
|
||||
s.d $f13, F13_OFF2($sp)
|
||||
@@ -438,6 +452,7 @@ ffi_closure_N32:
|
||||
s.d $f17, F17_OFF2($sp)
|
||||
s.d $f18, F18_OFF2($sp)
|
||||
s.d $f19, F19_OFF2($sp)
|
||||
+#endif
|
||||
|
||||
# Call ffi_closure_mips_inner_N32 to do the real work.
|
||||
LA t9, ffi_closure_mips_inner_N32
|
||||
@@ -458,6 +473,7 @@ cls_retint:
|
||||
b cls_epilogue
|
||||
|
||||
cls_retfloat:
|
||||
+#ifndef __mips_soft_float
|
||||
bne v0, FFI_TYPE_FLOAT, cls_retdouble
|
||||
l.s $f0, V0_OFF2($sp)
|
||||
b cls_epilogue
|
||||
@@ -500,6 +516,7 @@ cls_retstruct_f_d:
|
||||
l.s $f0, V0_OFF2($sp)
|
||||
l.d $f2, V1_OFF2($sp)
|
||||
b cls_epilogue
|
||||
+#endif
|
||||
|
||||
cls_retstruct_small2:
|
||||
REG_L v0, V0_OFF2($sp)
|
||||
--- a/libffi/src/mips/o32.S
|
||||
+++ b/libffi/src/mips/o32.S
|
||||
@@ -82,13 +82,16 @@ sixteen:
|
||||
|
||||
ADDU $sp, 4 * FFI_SIZEOF_ARG # adjust $sp to new args
|
||||
|
||||
+#ifndef __mips_soft_float
|
||||
bnez t0, pass_d # make it quick for int
|
||||
+#endif
|
||||
REG_L a0, 0*FFI_SIZEOF_ARG($sp) # just go ahead and load the
|
||||
REG_L a1, 1*FFI_SIZEOF_ARG($sp) # four regs.
|
||||
REG_L a2, 2*FFI_SIZEOF_ARG($sp)
|
||||
REG_L a3, 3*FFI_SIZEOF_ARG($sp)
|
||||
b call_it
|
||||
|
||||
+#ifndef __mips_soft_float
|
||||
pass_d:
|
||||
bne t0, FFI_ARGS_D, pass_f
|
||||
l.d $f12, 0*FFI_SIZEOF_ARG($sp) # load $fp regs from args
|
||||
@@ -130,6 +133,7 @@ pass_f_d:
|
||||
# bne t0, FFI_ARGS_F_D, call_it
|
||||
l.s $f12, 0*FFI_SIZEOF_ARG($sp) # load $fp regs from args
|
||||
l.d $f14, 2*FFI_SIZEOF_ARG($sp) # passing double and float
|
||||
+#endif
|
||||
|
||||
call_it:
|
||||
# Load the function pointer
|
||||
@@ -158,14 +162,23 @@ retfloat:
|
||||
bne t2, FFI_TYPE_FLOAT, retdouble
|
||||
jalr t9
|
||||
REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
|
||||
+#ifndef __mips_soft_float
|
||||
s.s $f0, 0(t0)
|
||||
+#else
|
||||
+ REG_S v0, 0(t0)
|
||||
+#endif
|
||||
b epilogue
|
||||
|
||||
retdouble:
|
||||
bne t2, FFI_TYPE_DOUBLE, noretval
|
||||
jalr t9
|
||||
REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
|
||||
+#ifndef __mips_soft_float
|
||||
s.d $f0, 0(t0)
|
||||
+#else
|
||||
+ REG_S v1, 4(t0)
|
||||
+ REG_S v0, 0(t0)
|
||||
+#endif
|
||||
b epilogue
|
||||
|
||||
noretval:
|
||||
@@ -261,9 +274,11 @@ $LCFI7:
|
||||
li $13, 1 # FFI_O32
|
||||
bne $16, $13, 1f # Skip fp save if FFI_O32_SOFT_FLOAT
|
||||
|
||||
+#ifndef __mips_soft_float
|
||||
# Store all possible float/double registers.
|
||||
s.d $f12, FA_0_0_OFF2($fp)
|
||||
s.d $f14, FA_1_0_OFF2($fp)
|
||||
+#endif
|
||||
1:
|
||||
# Call ffi_closure_mips_inner_O32 to do the work.
|
||||
la t9, ffi_closure_mips_inner_O32
|
||||
@@ -281,6 +296,7 @@ $LCFI7:
|
||||
li $13, 1 # FFI_O32
|
||||
bne $16, $13, 1f # Skip fp restore if FFI_O32_SOFT_FLOAT
|
||||
|
||||
+#ifndef __mips_soft_float
|
||||
li $9, FFI_TYPE_FLOAT
|
||||
l.s $f0, V0_OFF2($fp)
|
||||
beq $8, $9, closure_done
|
||||
@@ -288,6 +304,7 @@ $LCFI7:
|
||||
li $9, FFI_TYPE_DOUBLE
|
||||
l.d $f0, V0_OFF2($fp)
|
||||
beq $8, $9, closure_done
|
||||
+#endif
|
||||
1:
|
||||
REG_L $3, V1_OFF2($fp)
|
||||
REG_L $2, V0_OFF2($fp)
|
||||
@ -1,67 +0,0 @@
|
||||
From dda6b050cd74a352670787a294596a9c56c21327 Mon Sep 17 00:00:00 2001
|
||||
From: Yousong Zhou <yszhou4tech@gmail.com>
|
||||
Date: Fri, 4 May 2018 18:20:53 +0800
|
||||
Subject: [PATCH] gotools: fix compilation when making cross compiler
|
||||
|
||||
libgo is "the runtime support library for the Go programming language.
|
||||
This library is intended for use with the Go frontend."
|
||||
|
||||
gccgo will link target files with libgo.so which depends on libgcc_s.so.1, but
|
||||
the linker will complain that it cannot find it. That's because shared libgcc
|
||||
is not present in the install directory yet. libgo.so was made without problem
|
||||
because gcc will emit -lgcc_s when compiled with -shared option. When gotools
|
||||
were being made, it was supplied with -static-libgcc thus no link option was
|
||||
provided. Check LIBGO in gcc/go/gcc-spec.c for how gccgo make a builtin spec
|
||||
for linking with libgo.so
|
||||
|
||||
- GccgoCrossCompilation, https://github.com/golang/go/wiki/GccgoCrossCompilation
|
||||
- Cross-building instructions, http://www.eglibc.org/archives/patches/msg00078.html
|
||||
|
||||
When 3-pass GCC compilation is used, shared libgcc runtime libraries will be
|
||||
available after gcc pass2 completed and will meet the gotools link requirement
|
||||
at gcc pass3
|
||||
---
|
||||
gotools/Makefile.am | 4 +++-
|
||||
gotools/Makefile.in | 4 +++-
|
||||
2 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/gotools/Makefile.am
|
||||
+++ b/gotools/Makefile.am
|
||||
@@ -26,6 +26,7 @@ PWD_COMMAND = $${PWDCMD-pwd}
|
||||
STAMP = echo timestamp >
|
||||
|
||||
libgodir = ../$(target_noncanonical)/libgo
|
||||
+libgccdir = ../$(target_noncanonical)/libgcc
|
||||
LIBGODEP = $(libgodir)/libgo.la
|
||||
|
||||
LIBGOTOOL = $(libgodir)/libgotool.a
|
||||
@@ -41,7 +42,8 @@ GOCFLAGS = $(CFLAGS_FOR_TARGET)
|
||||
GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS)
|
||||
|
||||
AM_GOCFLAGS = -I $(libgodir)
|
||||
-AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs
|
||||
+AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs \
|
||||
+ -L $(libgccdir) -L $(libgccdir)/.libs -lgcc_s
|
||||
GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@
|
||||
|
||||
libgosrcdir = $(srcdir)/../libgo/go
|
||||
--- a/gotools/Makefile.in
|
||||
+++ b/gotools/Makefile.in
|
||||
@@ -337,6 +337,7 @@ mkinstalldirs = $(SHELL) $(toplevel_srcd
|
||||
PWD_COMMAND = $${PWDCMD-pwd}
|
||||
STAMP = echo timestamp >
|
||||
libgodir = ../$(target_noncanonical)/libgo
|
||||
+libgccdir = ../$(target_noncanonical)/libgcc
|
||||
LIBGODEP = $(libgodir)/libgo.la
|
||||
LIBGOTOOL = $(libgodir)/libgotool.a
|
||||
@NATIVE_FALSE@GOCOMPILER = $(GOC)
|
||||
@@ -346,7 +347,8 @@ LIBGOTOOL = $(libgodir)/libgotool.a
|
||||
GOCFLAGS = $(CFLAGS_FOR_TARGET)
|
||||
GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS)
|
||||
AM_GOCFLAGS = -I $(libgodir)
|
||||
-AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs
|
||||
+AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs \
|
||||
+ -L $(libgccdir) -L $(libgccdir)/.libs -lgcc_s
|
||||
GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@
|
||||
libgosrcdir = $(srcdir)/../libgo/go
|
||||
cmdsrcdir = $(libgosrcdir)/cmd
|
||||
@ -23,9 +23,9 @@ endif
|
||||
|
||||
tools-y += autoconf autoconf-archive automake bc bison cmake cpio dosfstools
|
||||
tools-y += e2fsprogs fakeroot findutils firmware-utils flex gengetopt
|
||||
tools-y += libressl libtool lzma m4 make-ext4fs missing-macros mkimage
|
||||
tools-y += mklibs mm-macros mtd-utils mtools ninja padjffs2 patch-image
|
||||
tools-y += patchelf pkgconf quilt squashfskit4 sstrip ucl upx xxd zip zlib zstd
|
||||
tools-y += libressl libtool lzma m4 make-ext4fs meson missing-macros mkimage
|
||||
tools-y += mklibs mtd-utils mtools ninja padjffs2 patch-image patchelf
|
||||
tools-y += pkgconf quilt squashfskit4 sstrip ucl upx xxd zip zlib zstd
|
||||
tools-$(BUILD_B43_TOOLS) += b43-tools
|
||||
tools-$(BUILD_ISL) += isl
|
||||
tools-$(BUILD_TOOLCHAIN) += expat gmp mpc mpfr
|
||||
@ -59,15 +59,16 @@ $(curdir)/libressl/compile := $(curdir)/pkgconf/compile
|
||||
$(curdir)/libtool/compile := $(curdir)/m4/compile $(curdir)/autoconf/compile $(curdir)/automake/compile $(curdir)/missing-macros/compile
|
||||
$(curdir)/lzma-old/compile := $(curdir)/zlib/compile
|
||||
$(curdir)/make-ext4fs/compile := $(curdir)/zlib/compile
|
||||
$(curdir)/meson/compile := $(curdir)/ninja/compile
|
||||
$(curdir)/missing-macros/compile := $(curdir)/autoconf/compile
|
||||
$(curdir)/mkimage/compile += $(curdir)/libressl/compile
|
||||
$(curdir)/mklibs/compile := $(curdir)/libtool/compile
|
||||
$(curdir)/mm-macros/compile := $(curdir)/libtool/compile
|
||||
$(curdir)/mpc/compile := $(curdir)/mpfr/compile $(curdir)/gmp/compile
|
||||
$(curdir)/mpfr/compile := $(curdir)/gmp/compile
|
||||
$(curdir)/mtd-utils/compile := $(curdir)/libtool/compile $(curdir)/e2fsprogs/compile $(curdir)/zlib/compile
|
||||
$(curdir)/padjffs2/compile := $(curdir)/findutils/compile
|
||||
$(curdir)/patchelf/compile := $(curdir)/libtool/compile
|
||||
$(curdir)/pkgconf/compile := $(curdir)/meson/compile
|
||||
$(curdir)/quilt/compile := $(curdir)/autoconf/compile $(curdir)/findutils/compile
|
||||
$(curdir)/sdcc/compile := $(curdir)/bison/compile
|
||||
$(curdir)/squashfs/compile := $(curdir)/lzma-old/compile
|
||||
@ -82,7 +83,7 @@ ifneq ($(HOST_OS),Linux)
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_CCACHE)$(CONFIG_SDK),)
|
||||
$(foreach tool, $(filter-out xz zstd patch pkgconf libressl ninja cmake,$(tools-y)), $(eval $(curdir)/$(tool)/compile += $(curdir)/ccache/compile))
|
||||
$(foreach tool, $(filter-out xz zstd pkgconf patch ninja meson libressl cmake,$(tools-y)), $(eval $(curdir)/$(tool)/compile += $(curdir)/ccache/compile))
|
||||
tools-y += ccache
|
||||
$(curdir)/ccache/compile := $(curdir)/zstd/compile
|
||||
endif
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=autoconf-archive
|
||||
PKG_VERSION:=2019.01.06
|
||||
PKG_VERSION:=2021.02.19
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@GNU/autoconf-archive
|
||||
PKG_HASH:=17195c833098da79de5778ee90948f4c5d90ed1a0cf8391b4ab348e2ec511e3f
|
||||
PKG_HASH:=e8a6eb9d28ddcba8ffef3fa211653239e9bf239aba6a01a6b7cfc7ceaec69cbd
|
||||
|
||||
include $(INCLUDE_DIR)/host-build.mk
|
||||
|
||||
|
||||
@ -7,11 +7,11 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=bison
|
||||
PKG_VERSION:=3.7.6
|
||||
PKG_VERSION:=3.8.1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
|
||||
PKG_HASH:=67d68ce1e22192050525643fc0a7a22297576682bef6a5c51446903f5aeef3cf
|
||||
PKG_HASH:=31fc602488aad6bdecf0ccc556e0fc72fc57cdc595cf92398f020e0cf4980f15
|
||||
|
||||
HOST_BUILD_PARALLEL:=1
|
||||
|
||||
|
||||
@ -1,17 +0,0 @@
|
||||
--- a/lib/stdio.in.h
|
||||
+++ b/lib/stdio.in.h
|
||||
@@ -835,14 +835,6 @@ _GL_WARN_ON_USE (getline, "getline is un
|
||||
# endif
|
||||
#endif
|
||||
|
||||
-/* It is very rare that the developer ever has full control of stdin,
|
||||
- so any use of gets warrants an unconditional warning; besides, C11
|
||||
- removed it. */
|
||||
-#undef gets
|
||||
-#if HAVE_RAW_DECL_GETS && !defined __cplusplus
|
||||
-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
|
||||
-#endif
|
||||
-
|
||||
#if defined _WIN32 && !defined __CYGWIN__
|
||||
# undef getw
|
||||
# define getw _getw
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user