Initial commit
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
From: John Crispin <john@phrozen.org>
|
||||
Subject: hack: kernel: add generic image_cmdline hack to MIPS targets
|
||||
|
||||
lede-commit: d59f5b3a987a48508257a0ddbaeadc7909f9f976
|
||||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
---
|
||||
arch/mips/Kconfig | 4 ++++
|
||||
arch/mips/kernel/head.S | 6 ++++++
|
||||
2 files changed, 10 insertions(+)
|
||||
|
||||
--- a/arch/mips/Kconfig
|
||||
+++ b/arch/mips/Kconfig
|
||||
@@ -1115,6 +1115,10 @@ config MIPS_MSC
|
||||
config SYNC_R4K
|
||||
bool
|
||||
|
||||
+config IMAGE_CMDLINE_HACK
|
||||
+ bool "OpenWrt specific image command line hack"
|
||||
+ default n
|
||||
+
|
||||
config NO_IOPORT_MAP
|
||||
def_bool n
|
||||
|
||||
--- a/arch/mips/kernel/head.S
|
||||
+++ b/arch/mips/kernel/head.S
|
||||
@@ -79,6 +79,12 @@ FEXPORT(__kernel_entry)
|
||||
j kernel_entry
|
||||
#endif /* CONFIG_BOOT_RAW */
|
||||
|
||||
+#ifdef CONFIG_IMAGE_CMDLINE_HACK
|
||||
+ .ascii "CMDLINE:"
|
||||
+EXPORT(__image_cmdline)
|
||||
+ .fill 0x400
|
||||
+#endif /* CONFIG_IMAGE_CMDLINE_HACK */
|
||||
+
|
||||
__REF
|
||||
|
||||
NESTED(kernel_entry, 16, sp) # kernel entry point
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/arch/mips/cavium-octeon/executive/cvmx-helper-board.c
|
||||
+++ b/arch/mips/cavium-octeon/executive/cvmx-helper-board.c
|
||||
@@ -174,6 +174,8 @@ int cvmx_helper_board_get_mii_address(in
|
||||
return 7 - ipd_port;
|
||||
else
|
||||
return -1;
|
||||
+ case CVMX_BOARD_TYPE_UBNT_E200:
|
||||
+ return -1;
|
||||
case CVMX_BOARD_TYPE_KONTRON_S1901:
|
||||
if (ipd_port == CVMX_HELPER_BOARD_MGMT_IPD_PORT)
|
||||
return 1;
|
||||
@@ -0,0 +1,34 @@
|
||||
--- a/drivers/staging/octeon/ethernet.c
|
||||
+++ b/drivers/staging/octeon/ethernet.c
|
||||
@@ -676,6 +676,7 @@ static int cvm_oct_probe(struct platform
|
||||
int interface;
|
||||
int fau = FAU_NUM_PACKET_BUFFERS_TO_FREE;
|
||||
int qos;
|
||||
+ int i;
|
||||
struct device_node *pip;
|
||||
int mtu_overhead = ETH_HLEN + ETH_FCS_LEN;
|
||||
|
||||
@@ -797,13 +798,19 @@ static int cvm_oct_probe(struct platform
|
||||
}
|
||||
|
||||
num_interfaces = cvmx_helper_get_number_of_interfaces();
|
||||
- for (interface = 0; interface < num_interfaces; interface++) {
|
||||
- cvmx_helper_interface_mode_t imode =
|
||||
- cvmx_helper_interface_get_mode(interface);
|
||||
- int num_ports = cvmx_helper_ports_on_interface(interface);
|
||||
+ for (i = 0; i < num_interfaces; i++) {
|
||||
+ cvmx_helper_interface_mode_t imode;
|
||||
+ int interface;
|
||||
+ int num_ports;
|
||||
int port;
|
||||
int port_index;
|
||||
|
||||
+ interface = i;
|
||||
+ if (cvmx_sysinfo_get()->board_type == CVMX_BOARD_TYPE_UBNT_E200)
|
||||
+ interface = num_interfaces - (i + 1);
|
||||
+
|
||||
+ num_ports = cvmx_helper_ports_on_interface(interface);
|
||||
+ imode = cvmx_helper_interface_get_mode(interface);
|
||||
for (port_index = 0,
|
||||
port = cvmx_helper_get_ipd_port(interface, 0);
|
||||
port < cvmx_helper_get_ipd_port(interface, num_ports);
|
||||
47
target/linux/octeon/patches-6.1/120-cmdline-hack.patch
Normal file
47
target/linux/octeon/patches-6.1/120-cmdline-hack.patch
Normal file
@@ -0,0 +1,47 @@
|
||||
--- a/arch/mips/cavium-octeon/setup.c
|
||||
+++ b/arch/mips/cavium-octeon/setup.c
|
||||
@@ -653,6 +653,35 @@ void octeon_user_io_init(void)
|
||||
write_c0_derraddr1(0);
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_IMAGE_CMDLINE_HACK
|
||||
+extern char __image_cmdline[];
|
||||
+
|
||||
+static int __init octeon_use_image_cmdline(void)
|
||||
+{
|
||||
+ char *p = __image_cmdline;
|
||||
+ int replace = 0;
|
||||
+
|
||||
+ if (*p == '-') {
|
||||
+ replace = 1;
|
||||
+ p++;
|
||||
+ }
|
||||
+
|
||||
+ if (*p == '\0')
|
||||
+ return 0;
|
||||
+
|
||||
+ if (replace) {
|
||||
+ strlcpy(arcs_cmdline, p, sizeof(arcs_cmdline));
|
||||
+ } else {
|
||||
+ strlcat(arcs_cmdline, " ", sizeof(arcs_cmdline));
|
||||
+ strlcat(arcs_cmdline, p, sizeof(arcs_cmdline));
|
||||
+ }
|
||||
+
|
||||
+ return 1;
|
||||
+}
|
||||
+#else
|
||||
+static inline int octeon_use_image_cmdline(void) { return 0; }
|
||||
+#endif
|
||||
+
|
||||
/**
|
||||
* prom_init - Early entry point for arch setup
|
||||
*/
|
||||
@@ -896,6 +925,8 @@ void __init prom_init(void)
|
||||
}
|
||||
}
|
||||
|
||||
+ octeon_use_image_cmdline();
|
||||
+
|
||||
if (strstr(arcs_cmdline, "console=") == NULL) {
|
||||
if (octeon_uart == 1)
|
||||
strcat(arcs_cmdline, " console=ttyS1,115200");
|
||||
42
target/linux/octeon/patches-6.1/130-add_itus_support.patch
Normal file
42
target/linux/octeon/patches-6.1/130-add_itus_support.patch
Normal file
@@ -0,0 +1,42 @@
|
||||
--- a/arch/mips/cavium-octeon/octeon-platform.c
|
||||
+++ b/arch/mips/cavium-octeon/octeon-platform.c
|
||||
@@ -774,7 +774,7 @@ int __init octeon_prune_device_tree(void
|
||||
if (fdt_check_header(initial_boot_params))
|
||||
panic("Corrupt Device Tree.");
|
||||
|
||||
- WARN(octeon_bootinfo->board_type == CVMX_BOARD_TYPE_CUST_DSR1000N,
|
||||
+ WARN(octeon_bootinfo->board_type == CVMX_BOARD_TYPE_ITUS_SHIELD,
|
||||
"Built-in DTB booting is deprecated on %s. Please switch to use appended DTB.",
|
||||
cvmx_board_type_to_string(octeon_bootinfo->board_type));
|
||||
|
||||
--- a/arch/mips/include/asm/octeon/cvmx-bootinfo.h
|
||||
+++ b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
|
||||
@@ -298,7 +298,7 @@ enum cvmx_board_types_enum {
|
||||
CVMX_BOARD_TYPE_UBNT_E100 = 20002,
|
||||
CVMX_BOARD_TYPE_UBNT_E200 = 20003,
|
||||
CVMX_BOARD_TYPE_UBNT_E220 = 20005,
|
||||
- CVMX_BOARD_TYPE_CUST_DSR1000N = 20006,
|
||||
+ CVMX_BOARD_TYPE_ITUS_SHIELD = 20006,
|
||||
CVMX_BOARD_TYPE_UBNT_E300 = 20300,
|
||||
CVMX_BOARD_TYPE_KONTRON_S1901 = 21901,
|
||||
CVMX_BOARD_TYPE_CUST_PRIVATE_MAX = 30000,
|
||||
@@ -403,7 +403,7 @@ static inline const char *cvmx_board_typ
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E100)
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E200)
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E220)
|
||||
- ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_DSR1000N)
|
||||
+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_ITUS_SHIELD)
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E300)
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_KONTRON_S1901)
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MAX)
|
||||
--- a/arch/mips/pci/pci-octeon.c
|
||||
+++ b/arch/mips/pci/pci-octeon.c
|
||||
@@ -211,7 +211,7 @@ const char *octeon_get_pci_interrupts(vo
|
||||
return "AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
|
||||
case CVMX_BOARD_TYPE_BBGW_REF:
|
||||
return "AABCD";
|
||||
- case CVMX_BOARD_TYPE_CUST_DSR1000N:
|
||||
+ case CVMX_BOARD_TYPE_ITUS_SHIELD:
|
||||
return "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC";
|
||||
case CVMX_BOARD_TYPE_THUNDER:
|
||||
case CVMX_BOARD_TYPE_EBH3000:
|
||||
46
target/linux/octeon/patches-6.1/150-ubnt_usg_support.patch
Normal file
46
target/linux/octeon/patches-6.1/150-ubnt_usg_support.patch
Normal file
@@ -0,0 +1,46 @@
|
||||
--- a/arch/mips/include/asm/octeon/cvmx-bootinfo.h
|
||||
+++ b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
|
||||
@@ -297,6 +297,7 @@ enum cvmx_board_types_enum {
|
||||
CVMX_BOARD_TYPE_CUST_PRIVATE_MIN = 20001,
|
||||
CVMX_BOARD_TYPE_UBNT_E100 = 20002,
|
||||
CVMX_BOARD_TYPE_UBNT_E200 = 20003,
|
||||
+ CVMX_BOARD_TYPE_UBNT_USG = 20004,
|
||||
CVMX_BOARD_TYPE_UBNT_E220 = 20005,
|
||||
CVMX_BOARD_TYPE_ITUS_SHIELD = 20006,
|
||||
CVMX_BOARD_TYPE_UBNT_E300 = 20300,
|
||||
@@ -401,6 +402,7 @@ static inline const char *cvmx_board_typ
|
||||
/* Customer private range */
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MIN)
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E100)
|
||||
+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_USG)
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E200)
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E220)
|
||||
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_ITUS_SHIELD)
|
||||
--- a/arch/mips/cavium-octeon/octeon-platform.c
|
||||
+++ b/arch/mips/cavium-octeon/octeon-platform.c
|
||||
@@ -635,6 +635,7 @@ static void __init octeon_rx_tx_delay(in
|
||||
}
|
||||
break;
|
||||
case CVMX_BOARD_TYPE_UBNT_E100:
|
||||
+ case CVMX_BOARD_TYPE_UBNT_USG:
|
||||
if (iface == 0 && port <= 2) {
|
||||
_octeon_rx_tx_delay(eth, 0x0, 0x10);
|
||||
return;
|
||||
--- a/arch/mips/cavium-octeon/executive/cvmx-helper-board.c
|
||||
+++ b/arch/mips/cavium-octeon/executive/cvmx-helper-board.c
|
||||
@@ -170,6 +170,7 @@ int cvmx_helper_board_get_mii_address(in
|
||||
else
|
||||
return -1;
|
||||
case CVMX_BOARD_TYPE_UBNT_E100:
|
||||
+ case CVMX_BOARD_TYPE_UBNT_USG:
|
||||
if (ipd_port >= 0 && ipd_port <= 2)
|
||||
return 7 - ipd_port;
|
||||
else
|
||||
@@ -337,6 +338,7 @@ enum cvmx_helper_board_usb_clock_types _
|
||||
case CVMX_BOARD_TYPE_LANAI2_G:
|
||||
case CVMX_BOARD_TYPE_NIC10E_66:
|
||||
case CVMX_BOARD_TYPE_UBNT_E100:
|
||||
+ case CVMX_BOARD_TYPE_UBNT_USG:
|
||||
return USB_CLOCK_TYPE_CRYSTAL_12;
|
||||
case CVMX_BOARD_TYPE_NIC10E:
|
||||
return USB_CLOCK_TYPE_REF_12;
|
||||
@@ -0,0 +1,37 @@
|
||||
From: Roman Kuzmitskii <damex.pp@icloud.com>
|
||||
Date: Wed, 28 Oct 2020 19:00:00 +0000
|
||||
Subject: [PATCH] staging: octeon: add net-labels support
|
||||
|
||||
With this patch, device name can be set within dts file
|
||||
in the same way as dsa port can.
|
||||
|
||||
Add label to pip interface node to use this feature:
|
||||
label = "lan0";
|
||||
|
||||
Tested-by: Johannes Kimmel <fff@bareminimum.eu>
|
||||
Signed-off-by: Roman Kuzmitskii <damex.pp@icloud.com>
|
||||
--- a/drivers/staging/octeon/ethernet.c
|
||||
+++ b/drivers/staging/octeon/ethernet.c
|
||||
@@ -407,8 +407,12 @@ static int cvm_oct_common_set_mac_addres
|
||||
int cvm_oct_common_init(struct net_device *dev)
|
||||
{
|
||||
struct octeon_ethernet *priv = netdev_priv(dev);
|
||||
+ const u8 *label = NULL;
|
||||
int ret;
|
||||
|
||||
+ if (priv->of_node)
|
||||
+ label = of_get_property(priv->of_node, "label", NULL);
|
||||
+
|
||||
ret = of_get_ethdev_address(priv->of_node, dev);
|
||||
if (ret)
|
||||
eth_hw_addr_random(dev);
|
||||
@@ -441,6 +445,9 @@ int cvm_oct_common_init(struct net_devic
|
||||
if (dev->netdev_ops->ndo_stop)
|
||||
dev->netdev_ops->ndo_stop(dev);
|
||||
|
||||
+ if (!IS_ERR_OR_NULL(label))
|
||||
+ dev_alloc_name(dev, label);
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
From: Roman Kuzmitskii <damex.pp@icloud.com>
|
||||
Date: Sun, 01 Nov 2020 19:00:00 +0000
|
||||
Subject: [PATCH] staging: octeon: sgmii to honor disabled dt node status
|
||||
|
||||
With this patch, sgmii interface device tree node could be disabled and
|
||||
that disabled interface will not be unnecessarily initialized.
|
||||
|
||||
It solves the problem with Octeon boards that have 8 sgmii or more ports
|
||||
initialized but have nothing connected to them.
|
||||
|
||||
Tested-by: Johannes Kimmel <fff@bareminimum.eu>
|
||||
Signed-off-by: Roman Kuzmitskii <damex.pp@icloud.com>
|
||||
--- a/drivers/staging/octeon/ethernet.c
|
||||
+++ b/drivers/staging/octeon/ethernet.c
|
||||
@@ -877,8 +877,10 @@ static int cvm_oct_probe(struct platform
|
||||
|
||||
case CVMX_HELPER_INTERFACE_MODE_SGMII:
|
||||
priv->phy_mode = PHY_INTERFACE_MODE_SGMII;
|
||||
- dev->netdev_ops = &cvm_oct_sgmii_netdev_ops;
|
||||
- strscpy(dev->name, "eth%d", sizeof(dev->name));
|
||||
+ if (of_device_is_available(priv->of_node)) {
|
||||
+ dev->netdev_ops = &cvm_oct_sgmii_netdev_ops;
|
||||
+ strscpy(dev->name, "eth%d", sizeof(dev->name));
|
||||
+ }
|
||||
break;
|
||||
|
||||
case CVMX_HELPER_INTERFACE_MODE_SPI:
|
||||
Reference in New Issue
Block a user