diff options
-rw-r--r-- | main/linux-octeon/APKBUILD | 8 | ||||
-rw-r--r-- | main/linux-octeon/config-octeon.mips64 | 2 | ||||
-rw-r--r-- | main/linux-octeon/ubnt-e200-sdio-underclock.patch | 49 |
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) |