diff --git a/core/linux-armv7/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch b/core/linux-armv7/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch index 2877ee4b3..62083ea28 100644 --- a/core/linux-armv7/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch +++ b/core/linux-armv7/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch @@ -1,7 +1,7 @@ -From a2d76eb657d4044818cadd30cd9878215d77cd96 Mon Sep 17 00:00:00 2001 +From 715001b5f5917bddfde2d802fabfb9a64dab0368 Mon Sep 17 00:00:00 2001 From: Willy Tarreau <w@xxxxxx> Date: Sun, 2 Dec 2012 19:59:28 +0100 -Subject: [PATCH 1/8] ARM: atags: add support for Marvell's u-boot +Subject: [PATCH 1/9] ARM: atags: add support for Marvell's u-boot Marvell uses a specific atag in its u-boot which includes among other information the MAC addresses for up to 4 network interfaces. @@ -47,5 +47,5 @@ index 6b335a9ff8c8..614150b53643 100644 }; -- -2.20.1 +2.22.0 diff --git a/core/linux-armv7/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch b/core/linux-armv7/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch index 0a0ac6316..b270b7fc0 100644 --- a/core/linux-armv7/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch +++ b/core/linux-armv7/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch @@ -1,7 +1,7 @@ -From 497fb4e86afb7ccf180a914aeadf63351aabd62f Mon Sep 17 00:00:00 2001 +From 45ce3dfa97865b1ab05b5074b0712f24daeee36c Mon Sep 17 00:00:00 2001 From: Willy Tarreau <w@xxxxxx> Date: Sun, 2 Dec 2012 19:56:58 +0100 -Subject: [PATCH 2/8] ARM: atags/fdt: retrieve MAC addresses from Marvell boot +Subject: [PATCH 2/9] ARM: atags/fdt: retrieve MAC addresses from Marvell boot loader The atags are parsed and if a Marvell atag is found, up to 4 MAC @@ -43,5 +43,5 @@ index 330cd3c2eae5..82f3802ff695 100644 } -- -2.20.1 +2.22.0 diff --git a/core/linux-armv7/0003-SMILE-Plug-device-tree-file.patch b/core/linux-armv7/0003-SMILE-Plug-device-tree-file.patch index 4955b1267..88d8878dc 100644 --- a/core/linux-armv7/0003-SMILE-Plug-device-tree-file.patch +++ b/core/linux-armv7/0003-SMILE-Plug-device-tree-file.patch @@ -1,7 +1,7 @@ -From bdc405844ccfe7c82cd1ec5b1d014415e75b19c7 Mon Sep 17 00:00:00 2001 +From 39b7c00e3cb226a9356937425a29da17c2981f8d Mon Sep 17 00:00:00 2001 From: Kevin Mihelich <kevin@archlinuxarm.org> Date: Fri, 5 Sep 2014 15:41:19 -0600 -Subject: [PATCH 3/8] SMILE Plug device tree file +Subject: [PATCH 3/9] SMILE Plug device tree file This adds a dts file for the SMILE Plug, which only differs from the Mirabox dts with the LED definitions. @@ -14,10 +14,10 @@ Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org> create mode 100644 arch/arm/boot/dts/armada-370-smileplug.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index f4f5aeaf3298..a690ff95ff93 100644 +index dab2914fa293..acc6197cdc41 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -1188,6 +1188,7 @@ dtb-$(CONFIG_MACH_ARMADA_370) += \ +@@ -1202,6 +1202,7 @@ dtb-$(CONFIG_MACH_ARMADA_370) += \ armada-370-db.dtb \ armada-370-dlink-dns327l.dtb \ armada-370-mirabox.dtb \ @@ -205,5 +205,5 @@ index 000000000000..d01308ab848b + }; +}; -- -2.20.1 +2.22.0 diff --git a/core/linux-armv7/0004-fix-mvsdio-eMMC-timing.patch b/core/linux-armv7/0004-fix-mvsdio-eMMC-timing.patch index 413255483..50b463f13 100644 --- a/core/linux-armv7/0004-fix-mvsdio-eMMC-timing.patch +++ b/core/linux-armv7/0004-fix-mvsdio-eMMC-timing.patch @@ -1,7 +1,7 @@ -From 56fb0137e1c8281ef338ad78e9b90ecedc175852 Mon Sep 17 00:00:00 2001 +From c0a8c786ab5cd65319a330d264d1cf5485b77939 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich <kevin@archlinuxarm.org> Date: Fri, 5 Sep 2014 15:43:56 -0600 -Subject: [PATCH 4/8] fix mvsdio eMMC timing +Subject: [PATCH 4/9] fix mvsdio eMMC timing These changes from Globalscale change the MMC timing to allow the eMMC versions of the Mirabox and SMILE Plug to work. @@ -12,10 +12,10 @@ Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org> 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c -index e22bbff89c8d..6b30c850ce07 100644 +index 74a0a7fbbf7f..92eadb116762 100644 --- a/drivers/mmc/host/mvsdio.c +++ b/drivers/mmc/host/mvsdio.c -@@ -93,7 +93,7 @@ static int mvsd_setup_data(struct mvsd_host *host, struct mmc_data *data) +@@ -90,7 +90,7 @@ static int mvsd_setup_data(struct mvsd_host *host, struct mmc_data *data) tmout_index = fls(tmout - 1) - 12; if (tmout_index < 0) tmout_index = 0; @@ -24,7 +24,7 @@ index e22bbff89c8d..6b30c850ce07 100644 tmout_index = MVSD_HOST_CTRL_TMOUT_MAX; dev_dbg(host->dev, "data %s at 0x%08x: blocks=%d blksz=%d tmout=%u (%d)\n", -@@ -616,6 +616,8 @@ static void mvsd_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) +@@ -613,6 +613,8 @@ static void mvsd_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) u32 m = DIV_ROUND_UP(host->base_clock, ios->clock) - 1; if (m > MVSD_BASE_DIV_MAX) m = MVSD_BASE_DIV_MAX; @@ -34,5 +34,5 @@ index e22bbff89c8d..6b30c850ce07 100644 host->clock = ios->clock; host->ns_per_clk = 1000000000 / (host->base_clock / (m+1)); -- -2.20.1 +2.22.0 diff --git a/core/linux-armv7/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch b/core/linux-armv7/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch index 29b694340..92e3b3e00 100644 --- a/core/linux-armv7/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch +++ b/core/linux-armv7/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch @@ -1,17 +1,17 @@ -From 44feb9ee18a0a63523a1ac84a2122a91ab827f29 Mon Sep 17 00:00:00 2001 +From a71f7ca149aa36525082c55ba3d353e5638b056f Mon Sep 17 00:00:00 2001 From: popcornmix <popcornmix@gmail.com> Date: Tue, 18 Feb 2014 01:43:50 -0300 -Subject: [PATCH 5/8] net/smsc95xx: Allow mac address to be set as a parameter +Subject: [PATCH 5/9] net/smsc95xx: Allow mac address to be set as a parameter --- drivers/net/usb/smsc95xx.c | 56 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c -index e3d08626828e..2eaae00b4033 100644 +index 355be77f4241..c94a7193e0b9 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c -@@ -60,6 +60,7 @@ +@@ -48,6 +48,7 @@ #define SUSPEND_SUSPEND3 (0x08) #define SUSPEND_ALLMODES (SUSPEND_SUSPEND0 | SUSPEND_SUSPEND1 | \ SUSPEND_SUSPEND2 | SUSPEND_SUSPEND3) @@ -19,7 +19,7 @@ index e3d08626828e..2eaae00b4033 100644 #define CARRIER_CHECK_DELAY (2 * HZ) -@@ -82,6 +83,10 @@ static bool turbo_mode = true; +@@ -70,6 +71,10 @@ static bool turbo_mode = true; module_param(turbo_mode, bool, 0644); MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); @@ -30,7 +30,7 @@ index e3d08626828e..2eaae00b4033 100644 static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data, int in_pm) { -@@ -911,8 +916,59 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) +@@ -899,8 +904,59 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL); } @@ -91,5 +91,5 @@ index e3d08626828e..2eaae00b4033 100644 /* maybe the boot loader passed the MAC address in devicetree */ -- -2.20.1 +2.22.0 diff --git a/core/linux-armv7/0006-set-default-cubietruck-led-triggers.patch b/core/linux-armv7/0006-set-default-cubietruck-led-triggers.patch index 1ec7c6597..000edeeed 100644 --- a/core/linux-armv7/0006-set-default-cubietruck-led-triggers.patch +++ b/core/linux-armv7/0006-set-default-cubietruck-led-triggers.patch @@ -1,7 +1,7 @@ -From 2a1d4185dc6412fe95a3d01edfefc9526a732c6d Mon Sep 17 00:00:00 2001 +From 67004e3f653d695e342b2aafd3405ef40d70dc73 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich <kevin@archlinuxarm.org> Date: Sat, 14 Feb 2015 12:32:27 +0100 -Subject: [PATCH 6/8] set default cubietruck led triggers +Subject: [PATCH 6/9] set default cubietruck led triggers Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org> --- @@ -29,5 +29,5 @@ index 99f531b8d2a7..534392a72621 100644 }; -- -2.20.1 +2.22.0 diff --git a/core/linux-armv7/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch b/core/linux-armv7/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch index 1617bc8fd..f7d083e5a 100644 --- a/core/linux-armv7/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch +++ b/core/linux-armv7/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch @@ -1,7 +1,7 @@ -From f53116c63eb823ec4b217dbe9d4741244e57fd43 Mon Sep 17 00:00:00 2001 +From ba9005d557f10c61701551a084ca05b8ac720809 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich <kevin@archlinuxarm.org> Date: Thu, 11 Aug 2016 00:42:37 -0600 -Subject: [PATCH 7/8] exynos4412-odroid: set higher minimum buck2 regulator +Subject: [PATCH 7/9] exynos4412-odroid: set higher minimum buck2 regulator voltage Set a higher minimum voltage to help reboot issue. @@ -26,5 +26,5 @@ index 08d3a0a7b4eb..cf3e2ab900dd 100644 regulator-always-on; regulator-boot-on; -- -2.20.1 +2.22.0 diff --git a/core/linux-armv7/0008-ARM-dove-enable-ethernet-on-D3Plug.patch b/core/linux-armv7/0008-ARM-dove-enable-ethernet-on-D3Plug.patch index 8351585c9..120274b07 100644 --- a/core/linux-armv7/0008-ARM-dove-enable-ethernet-on-D3Plug.patch +++ b/core/linux-armv7/0008-ARM-dove-enable-ethernet-on-D3Plug.patch @@ -1,7 +1,7 @@ -From 96ae2f7a3ca863db0820373ab57ebf06c1133954 Mon Sep 17 00:00:00 2001 +From fbb489e948062ea2e4c666f1d87ff5f81b8caf26 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich <kevin@archlinuxarm.org> Date: Sun, 7 May 2017 13:32:25 -0600 -Subject: [PATCH 8/8] ARM: dove: enable ethernet on D3Plug +Subject: [PATCH 8/9] ARM: dove: enable ethernet on D3Plug Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org> --- @@ -27,5 +27,5 @@ index 826026c28f90..a4c9963e1261 100644 /* Samsung M8G2F eMMC */ &sdio0 { -- -2.20.1 +2.22.0 diff --git a/core/linux-armv7/0009-USB-Armory-MkII-support.patch b/core/linux-armv7/0009-USB-Armory-MkII-support.patch new file mode 100644 index 000000000..a30723472 --- /dev/null +++ b/core/linux-armv7/0009-USB-Armory-MkII-support.patch @@ -0,0 +1,559 @@ +From fd2185ebe25bb1d2a846013d62e4c621ac6a3210 Mon Sep 17 00:00:00 2001 +From: Kevin Mihelich <kevin@archlinuxarm.org> +Date: Sun, 11 Aug 2019 12:34:17 -0600 +Subject: [PATCH 9/9] USB Armory MkII support + +--- + arch/arm/boot/dts/Makefile | 2 + + arch/arm/boot/dts/imx6ul-usbarmory.dts | 257 +++++++++++++++++++++++ + arch/arm/boot/dts/imx6ull-usbarmory.dts | 258 ++++++++++++++++++++++++ + 3 files changed, 517 insertions(+) + create mode 100644 arch/arm/boot/dts/imx6ul-usbarmory.dts + create mode 100644 arch/arm/boot/dts/imx6ull-usbarmory.dts + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index acc6197cdc41..1a36a8de9ef2 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -577,9 +577,11 @@ dtb-$(CONFIG_SOC_IMX6UL) += \ + imx6ul-tx6ul-0010.dtb \ + imx6ul-tx6ul-0011.dtb \ + imx6ul-tx6ul-mainboard.dtb \ ++ imx6ul-usbarmory.dtb \ + imx6ull-14x14-evk.dtb \ + imx6ull-colibri-eval-v3.dtb \ + imx6ull-colibri-wifi-eval-v3.dtb \ ++ imx6ull-usbarmory.dtb \ + imx6ulz-14x14-evk.dtb + dtb-$(CONFIG_SOC_IMX7D) += \ + imx7d-cl-som-imx7.dtb \ +diff --git a/arch/arm/boot/dts/imx6ul-usbarmory.dts b/arch/arm/boot/dts/imx6ul-usbarmory.dts +new file mode 100644 +index 000000000000..a596af4cea25 +--- /dev/null ++++ b/arch/arm/boot/dts/imx6ul-usbarmory.dts +@@ -0,0 +1,257 @@ ++/* ++ * USB armory Mk II device tree file ++ * https://inversepath.com/usbarmory ++ * ++ * Copyright (C) 2019, F-Secure Corporation ++ * Andrej Rosano <andrej.rosano@f-secure.com> ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) This file is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of the ++ * License, or (at your option) any later version. ++ * ++ * This file is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * Or, alternatively, ++ * ++ * b) Permission is hereby granted, free of charge, to any person ++ * obtaining a copy of this software and associated documentation ++ * files (the "Software"), to deal in the Software without ++ * restriction, including without limitation the rights to use, ++ * copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following ++ * conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++/dts-v1/; ++ ++#include "imx6ul.dtsi" ++ ++/ { ++ model = "F-Secure USB armory Mk II"; ++ compatible = "inversepath,imx6ul-usbarmory-mkII", "fsl,imx6ul"; ++ ++ chosen { ++ stdout-path = &uart2; ++ }; ++ ++ memory { ++ reg = <0x80000000 0x20000000>; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_led>; ++ ++ led-white { ++ label = "LED_WHITE"; ++ gpios = <&gpio4 21 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "heartbeat"; ++ }; ++ ++ led-blue { ++ label = "LED_BLUE"; ++ gpios = <&gpio4 22 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++ ++ regulators { ++ compatible = "simple-bus"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ reg_sd1_vmmc: sd1_regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "VSD_3V3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ }; ++ }; ++}; ++ ++&uart1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_bluetooth>; ++ uart-has-rtscts; ++ status = "okay"; ++}; ++ ++&uart2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart2>; ++ status = "okay"; ++}; ++ ++&usdhc1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_usdhc1>; ++ no-1-8-v; ++ keep-power-in-suspend; ++ wakeup-source; ++ status = "okay"; ++}; ++ ++&usdhc2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_usdhc2>; ++ non-removable; ++ status = "okay"; ++}; ++ ++&i2c1 { ++ pinctrl-0 = <&pinctrl_i2c1>; ++ status = "okay"; ++}; ++ ++&iomuxc { ++ pinctrl_uart2: uart2grp { ++ fsl,pins = < ++ MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1 ++ MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1 ++ >; ++ }; ++ ++ pinctrl_bluetooth: uart1grp { ++ fsl,pins = < ++ MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b0 /* BT_UART_TX */ ++ MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b0 /* BT_UART_RX */ ++ MX6UL_PAD_UART1_CTS_B__UART1_DCE_CTS 0x1b0b0 /* BT_UART_CTS */ ++ MX6UL_PAD_GPIO1_IO07__UART1_DCE_RTS 0x130b0 /* BT_UART_RTS */ ++ MX6UL_PAD_UART3_TX_DATA__GPIO1_IO24 0x1f020 /* BT_UART_DSR */ ++ MX6UL_PAD_UART3_RX_DATA__GPIO1_IO25 0x10020 /* BT_UART_DTR */ ++ MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x1f020 /* BT_SWDCLK */ ++ MX6UL_PAD_GPIO1_IO05__GPIO1_IO05 0x1f020 /* BT_SWDIO */ ++ MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x1f020 /* BT_RESET */ ++ MX6UL_PAD_UART3_RTS_B__GPIO1_IO27 0x1f020 /* BT_SWITCH_1 */ ++ MX6UL_PAD_UART3_CTS_B__GPIO1_IO26 0x1f020 /* BT_SWITCH_2 */ ++ >; ++ }; ++ ++ pinctrl_i2c1: i2c1grp { ++ fsl,pins = < ++ MX6UL_PAD_GPIO1_IO02__I2C1_SCL 0x4001b8b0 ++ MX6UL_PAD_GPIO1_IO03__I2C1_SDA 0x4001b8b0 ++ >; ++ }; ++ ++ pinctrl_led: ledgrp { ++ fsl,pins = < ++ MX6UL_PAD_CSI_DATA06__GPIO4_IO27 0x1f020 ++ MX6UL_PAD_CSI_DATA07__GPIO4_IO28 0x1f020 ++ >; ++ }; ++ ++ pinctrl_usdhc1: usdhc1grp { ++ fsl,pins = < ++ MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x1f019 ++ MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x1f019 ++ MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x1f019 ++ MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x1f019 ++ MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x1f019 ++ MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x1f019 ++ >; ++ }; ++ ++ pinctrl_usdhc2: usdhc2grp { ++ fsl,pins = < ++ MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x10071 ++ MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059 ++ MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059 ++ MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059 ++ MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059 ++ MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059 ++ MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x17059 ++ MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x17059 ++ MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x17059 ++ MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x17059 ++ >; ++ }; ++}; ++ ++&aips2 { ++ crypto: caam@2140000 { ++ compatible = "fsl,imx6ul-caam", "fsl,sec-v4.0"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ reg = <0x2140000 0x3c000>; ++ ranges = <0 0x2140000 0x3c000>; ++ interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; ++ clocks = <&clks IMX6UL_CLK_CAAM_IPG>, <&clks IMX6UL_CLK_CAAM_ACLK>, ++ <&clks IMX6UL_CLK_CAAM_MEM>; ++ clock-names = "ipg", "aclk", "mem"; ++ ++ sec_jr0: jr0@1000 { ++ compatible = "fsl,sec-v4.0-job-ring"; ++ reg = <0x1000 0x1000>; ++ interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; ++ }; ++ ++ sec_jr1: jr1@2000 { ++ compatible = "fsl,sec-v4.0-job-ring"; ++ reg = <0x2000 0x1000>; ++ interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; ++ }; ++ sec_jr2: jr2@3000 { ++ compatible = "fsl,sec-v4.0-job-ring"; ++ reg = <0x3000 0x1000>; ++ interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; ++ }; ++ }; ++}; ++ ++/ { ++ soc { ++ caam_sm: caam-sm@00100000 { ++ compatible = "fsl,imx7d-caam-sm", "fsl,imx6q-caam-sm"; ++ reg = <0x00100000 0x3fff>; ++ }; ++ ++ irq_sec_vio: caam_secvio { ++ compatible = "fsl,imx7d-caam-secvio", "fsl,imx6q-caam-secvio"; ++ interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; ++ }; ++ }; ++ ++ caam_keyblob: caam-keyblob { ++ compatible = "fsl,sec-v4.0-keyblob"; ++ status = "okay"; ++ }; ++}; ++ ++&usbotg1 { ++ dr_mode = "otg"; ++ disable-over-current; ++ tpl-support; ++ status = "okay"; ++}; ++ ++&usbotg2 { ++ dr_mode = "host"; ++ disable-over-current; ++ tpl-support; ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/imx6ull-usbarmory.dts b/arch/arm/boot/dts/imx6ull-usbarmory.dts +new file mode 100644 +index 000000000000..7b3ed97fbe31 +--- /dev/null ++++ b/arch/arm/boot/dts/imx6ull-usbarmory.dts +@@ -0,0 +1,258 @@ ++/* ++ * USB armory Mk II device tree file ++ * https://inversepath.com/usbarmory ++ * ++ * Copyright (C) 2019, F-Secure Corporation ++ * Andrej Rosano <andrej.rosano@f-secure.com> ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) This file is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of the ++ * License, or (at your option) any later version. ++ * ++ * This file is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * Or, alternatively, ++ * ++ * b) Permission is hereby granted, free of charge, to any person ++ * obtaining a copy of this software and associated documentation ++ * files (the "Software"), to deal in the Software without ++ * restriction, including without limitation the rights to use, ++ * copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following ++ * conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++/dts-v1/; ++ ++#include "imx6ul.dtsi" ++ ++/ { ++ model = "F-Secure USB armory Mk II"; ++ compatible = "inversepath,imx6ull-usbarmory-mkII", "fsl,imx6ull"; ++ ++ chosen { ++ stdout-path = &uart2; ++ }; ++ ++ memory { ++ reg = <0x80000000 0x20000000>; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_led>; ++ ++ led-white { ++ label = "LED_WHITE"; ++ gpios = <&gpio4 21 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "heartbeat"; ++ }; ++ ++ led-blue { ++ label = "LED_BLUE"; ++ gpios = <&gpio4 22 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++ ++ regulators { ++ compatible = "simple-bus"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ reg_sd1_vmmc: sd1_regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "VSD_3V3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ }; ++ }; ++}; ++ ++/* Delete CAAM node in AIPS-2 (i.MX6UL specific) */ ++/delete-node/ &crypto; ++ ++&cpu0 { ++ operating-points = < ++ /* kHz uV */ ++ 900000 1275000 ++ 792000 1225000 ++ 528000 1175000 ++ 396000 1025000 ++ 198000 950000 ++ >; ++ fsl,soc-operating-points = < ++ /* KHz uV */ ++ 900000 1250000 ++ 792000 1175000 ++ 528000 1175000 ++ 396000 1175000 ++ 198000 1175000 ++ >; ++}; ++ ++&uart1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_bluetooth>; ++ uart-has-rtscts; ++ status = "okay"; ++}; ++ ++&uart2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_uart2>; ++ status = "okay"; ++}; ++ ++&usdhc1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_usdhc1>; ++ no-1-8-v; ++ keep-power-in-suspend; ++ wakeup-source; ++ status = "okay"; ++}; ++ ++&usdhc2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_usdhc2>; ++ non-removable; ++ status = "okay"; ++}; ++ ++&i2c1 { ++ pinctrl-0 = <&pinctrl_i2c1>; ++ status = "okay"; ++}; ++ ++&iomuxc { ++ pinctrl_uart2: uart2grp { ++ fsl,pins = < ++ MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1 ++ MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1 ++ >; ++ }; ++ ++ pinctrl_bluetooth: uart1grp { ++ fsl,pins = < ++ MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b0 /* BT_UART_TX */ ++ MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b0 /* BT_UART_RX */ ++ MX6UL_PAD_UART1_CTS_B__UART1_DCE_CTS 0x1b0b0 /* BT_UART_CTS */ ++ MX6UL_PAD_GPIO1_IO07__UART1_DCE_RTS 0x130b0 /* BT_UART_RTS */ ++ MX6UL_PAD_UART3_TX_DATA__GPIO1_IO24 0x1f020 /* BT_UART_DSR */ ++ MX6UL_PAD_UART3_RX_DATA__GPIO1_IO25 0x10020 /* BT_UART_DTR */ ++ MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x1f020 /* BT_SWDCLK */ ++ MX6UL_PAD_GPIO1_IO05__GPIO1_IO05 0x1f020 /* BT_SWDIO */ ++ MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x1f020 /* BT_RESET */ ++ MX6UL_PAD_UART3_RTS_B__GPIO1_IO27 0x1f020 /* BT_SWITCH_1 */ ++ MX6UL_PAD_UART3_CTS_B__GPIO1_IO26 0x1f020 /* BT_SWITCH_2 */ ++ >; ++ }; ++ ++ pinctrl_i2c1: i2c1grp { ++ fsl,pins = < ++ MX6UL_PAD_GPIO1_IO02__I2C1_SCL 0x4001b8b0 ++ MX6UL_PAD_GPIO1_IO03__I2C1_SDA 0x4001b8b0 ++ >; ++ }; ++ ++ pinctrl_led: ledgrp { ++ fsl,pins = < ++ MX6UL_PAD_CSI_DATA06__GPIO4_IO27 0x1f020 ++ MX6UL_PAD_CSI_DATA07__GPIO4_IO28 0x1f020 ++ >; ++ }; ++ ++ pinctrl_usdhc1: usdhc1grp { ++ fsl,pins = < ++ MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x1f019 ++ MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x1f019 ++ MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x1f019 ++ MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x1f019 ++ MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x1f019 ++ MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x1f019 ++ >; ++ }; ++ ++ pinctrl_usdhc2: usdhc2grp { ++ fsl,pins = < ++ MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x10071 ++ MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059 ++ MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059 ++ MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059 ++ MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059 ++ MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059 ++ MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x17059 ++ MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x17059 ++ MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x17059 ++ MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x17059 ++ >; ++ }; ++}; ++ ++/ { ++ soc { ++ aips3: aips-bus@02200000 { ++ compatible = "fsl,aips-bus", "simple-bus"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ reg = <0x02200000 0x100000>; ++ ranges; ++ ++ dcp: dcp@02280000 { ++ compatible = "fsl,imx6ull-dcp", "fsl,imx6sl-dcp", "fsl,imx28-dcp"; ++ reg = <0x02280000 0x4000>; ++ interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, ++ <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, ++ <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; ++ clocks = <&clks IMX6ULL_CLK_DCP_CLK>; ++ clock-names = "dcp"; ++ }; ++ ++ rngb: rngb@02284000 { ++ compatible = "fsl,imx6sl-rng", "fsl,imx25-rngb", "fsl,imx-rng", "imx-rng"; ++ reg = <0x02284000 0x4000>; ++ interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; ++ clocks = <&clks IMX6UL_CLK_DUMMY>; ++ }; ++ }; ++ }; ++}; ++ ++&usbotg1 { ++ dr_mode = "peripheral"; ++ disable-over-current; ++ tpl-support; ++ status = "okay"; ++}; ++ ++&usbotg2 { ++ dr_mode = "host"; ++ disable-over-current; ++ tpl-support; ++ status = "okay"; ++}; +-- +2.22.0 + diff --git a/core/linux-armv7/PKGBUILD b/core/linux-armv7/PKGBUILD index 7b56efd08..172035432 100644 --- a/core/linux-armv7/PKGBUILD +++ b/core/linux-armv7/PKGBUILD @@ -8,9 +8,9 @@ _srcname=linux-5.2 _kernelname=${pkgbase#linux} _desc="ARMv7 multi-platform" pkgver=5.2.8 -pkgrel=1 -rcnver=5.2.5 -rcnrel=armv7-x3 +pkgrel=2 +rcnver=5.2.8 +rcnrel=armv7-x4 arch=('armv7h') url="http://www.kernel.org/" license=('GPL2') @@ -27,6 +27,7 @@ source=("http://www.kernel.org/pub/linux/kernel/v5.x/${_srcname}.tar.xz" '0006-set-default-cubietruck-led-triggers.patch' '0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch' '0008-ARM-dove-enable-ethernet-on-D3Plug.patch' + '0009-USB-Armory-MkII-support.patch' 'config' 'kernel.its' 'kernel.keyblock' @@ -36,15 +37,16 @@ source=("http://www.kernel.org/pub/linux/kernel/v5.x/${_srcname}.tar.xz" '90-linux.hook') md5sums=('ddf994de00d7b18395886dd9b30b9262' '86638e3bb71b4b0494d4c7f0851a54b1' - 'ef32c9bf05aeff66073c09255a526b32' - '6f246601cdecde127ebed315ef43c160' - '5e381b69c3489bee2b3a4b9fdb13341c' - 'b0915e4cb58dea29468a2c6f8ec1293d' - '133715eeef64488a09d1d9ad7040e0e8' - '18410bb9deae2a96adee56bc095ace3a' - '04da90e80f4e688737bc5fdd559bc0fd' - '115109b6746ab011dcc05e85959a30c0' - '32fd9f4595caebff5c761d336af19bc8' + 'c458cd95b46b24009eca6913811787b4' + 'bc5c7bb9fb157ad9af8196033b3834cc' + '019ac78d013a8e71b95579f878c82b7e' + 'c0ad915e7e3ae8c0ee22aac089cd9ff2' + '5b633aa2c22d2f21618ee4e9936e7eae' + '5a146854f80a647c13dbaaf356bf3619' + '5385bda90e24c36cd05d6357503ab393' + '4e84ffb105e0743802dadb074dd1582c' + '88ab731bfa6b7211ae6937e4b9de909c' + '0b2f6e03e7188b8d14eb3d1b166f7236' '1ca53b1158e36525dbfb6ddfe79333b3' '4f2379ed84258050edb858ee8d281678' '61c5ff73c136ed07a7aadbf58db3d96a' @@ -71,6 +73,7 @@ prepare() { git apply ../0006-set-default-cubietruck-led-triggers.patch git apply ../0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch git apply ../0008-ARM-dove-enable-ethernet-on-D3Plug.patch + git apply ../0009-USB-Armory-MkII-support.patch cat "${srcdir}/config" > ./.config