aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/linux-octeon/APKBUILD8
-rw-r--r--main/linux-octeon/config-octeon.mips642
-rw-r--r--main/linux-octeon/ubnt-e200-sdio-underclock.patch49
3 files changed, 55 insertions, 4 deletions
diff --git a/main/linux-octeon/APKBUILD b/main/linux-octeon/APKBUILD
index b4f85d74ce..559782a1ab 100644
--- a/main/linux-octeon/APKBUILD
+++ b/main/linux-octeon/APKBUILD
@@ -2,7 +2,7 @@
_flavor=octeon
pkgname=linux-${_flavor}
-pkgver=5.4.16
+pkgver=5.4.17
case $pkgver in
*.*.*) _kernver=${pkgver%.*};;
*.*) _kernver=$pkgver;;
@@ -20,6 +20,7 @@ install=
source="https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/linux-$_kernver.tar.xz
octeon-rd_name.patch
octeon-disable-devicetree-deprecation-warning.patch
+ ubnt-e200-sdio-underclock.patch
config-octeon.mips64
"
@@ -211,5 +212,6 @@ _dev() {
sha512sums="9f60f77e8ab972b9438ac648bed17551c8491d6585a5e85f694b2eaa4c623fbc61eb18419b2656b6795eac5deec0edaa04547fc6723fbda52256bd7f3486898f linux-5.4.tar.xz
39d145b7afd3297d9572e7c37eb40b58c3b0d7f30cc361bdf6c89e6bb54a6072f79dea979f4b4fc24d06fe06c406d10949cbf79d373e1ba82514a2f1bb0a6255 octeon-rd_name.patch
a2c0d901188570ebba6917b727cdb4823bda5dbe29a559ed2055db21b4f5dd4990f623b94f07072bcbf69647f250afb52d1771d706bdc072e2cfb00003e257b4 octeon-disable-devicetree-deprecation-warning.patch
-958cad36dc6c7c3bc1d4c96d65254e4e1950338d9eebbc7bca3cdd0f5ce807ce1b818d485f4d5caa89f23f8220bd5785190eb4c5d9717b02adbb2d20f080ccb7 config-octeon.mips64
-365dc6d176531df8f953a6ed9b95ee43fc9b6644444f02ee84ad2191ba30cdfc54417a895d8b57860cec5e0e7e8ab826e1b5fffa52b2adae3292037fd382302c patch-5.4.16.xz"
+0fa567bdc29f63e7c9da43a0eefd2daa239791ecd3281257033027b70ebb424d85e55a289b4b59439393cfb199a0dc89994de495cf215df501aa83a5accd0adb ubnt-e200-sdio-underclock.patch
+e8f70a32a17af6524bda22ddc1a66f265b9a9fe76cfe8c9a92340dcce9a23b740ef342cf450a5ed710777905650cff795af71ae52ef9b413bc8905dd85bcfc3a config-octeon.mips64
+751b3d46f3d3b6bb994a793bb74ca12abe1f9b6d4e45bff6eaab4e3839b8f37a1e4d4dec28ba68648a5c25098ac027995eaebbab13bdebb1f490da379bbaa079 patch-5.4.17.xz"
diff --git a/main/linux-octeon/config-octeon.mips64 b/main/linux-octeon/config-octeon.mips64
index 08615dd490..d3117dbb87 100644
--- a/main/linux-octeon/config-octeon.mips64
+++ b/main/linux-octeon/config-octeon.mips64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/mips 5.4.6 Kernel Configuration
+# Linux/mips 5.4.17 Kernel Configuration
#
#
diff --git a/main/linux-octeon/ubnt-e200-sdio-underclock.patch b/main/linux-octeon/ubnt-e200-sdio-underclock.patch
new file mode 100644
index 0000000000..1b6c34e956
--- /dev/null
+++ b/main/linux-octeon/ubnt-e200-sdio-underclock.patch
@@ -0,0 +1,49 @@
+Cleaned up patch which underclocks the SDIO bus on E200 boards,
+derived from UBNT GPL sources (ubnt_prune_device_tree).
+
+Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
+--- linux-5.4.orig/arch/mips/cavium-octeon/octeon-platform.c
++++ linux-5.4/arch/mips/cavium-octeon/octeon-platform.c
+@@ -1128,6 +1128,20 @@
+ }
+ #endif
+
++ /* UBNT underclocks the SDIO bus on E200. We do the same here. */
++ if (octeon_bootinfo->board_type == CVMX_BOARD_TYPE_UBNT_E200 || octeon_bootinfo->board_type == CVMX_BOARD_TYPE_UBNT_E220) {
++ int mmc_slot0;
++ u32 freq = 26000000;
++
++ pr_info("UBNT E200 board detected, underclocking SDIO bus.\n");
++
++ mmc_slot0 = fdt_path_offset(initial_boot_params, "/soc/mmc/mmc-slot@0");
++ if (mmc_slot0 > 0) {
++ fdt_setprop_inplace_cell(initial_boot_params, mmc_slot0,
++ "spi-max-frequency", freq);
++ }
++ }
++
+ return 0;
+ }
+
+--- linux-5.4.orig/arch/mips/include/asm/octeon/cvmx-bootinfo.h
++++ linux-5.4/arch/mips/include/asm/octeon/cvmx-bootinfo.h
+@@ -295,6 +295,9 @@
+ */
+ CVMX_BOARD_TYPE_CUST_PRIVATE_MIN = 20001,
+ CVMX_BOARD_TYPE_UBNT_E100 = 20002,
++ CVMX_BOARD_TYPE_UBNT_E200 = 20003,
++ CVMX_BOARD_TYPE_UBNT_E120 = 20004,
++ CVMX_BOARD_TYPE_UBNT_E220 = 20005,
+ CVMX_BOARD_TYPE_CUST_DSR1000N = 20006,
+ CVMX_BOARD_TYPE_KONTRON_S1901 = 21901,
+ CVMX_BOARD_TYPE_CUST_PRIVATE_MAX = 30000,
+@@ -396,6 +399,9 @@
+ /* 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_E200)
++ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E120)
++ 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_KONTRON_S1901)
+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MAX)