From cd30df4a98f6558525c063ec6ee9d1f9d0397396 Mon Sep 17 00:00:00 2001 From: Joakim Bech Date: Fri, 1 Apr 2016 14:39:54 +0200 Subject: [PATCH 01/18] arm64: dt: Remove timer from mt8173 **not for mainline** From the commit below, the mt8173-evb failed to boot to console due to changes in the mt8173 device tree files. commit c0d6fe2f01c475cc137d90607a07578586883df8 Merge: b44a3d2 3e4dda7 Author: Linus Torvalds Date: Tue Nov 10 15:06:26 2015 -0800 Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Until properly solved, let's just remove the section in the device tree blob that causes this. Signed-off-by: Joakim Bech Reviewed-by: Pascal Brand --- arch/arm64/boot/dts/mediatek/mt8173.dtsi | 9 --------- 1 file changed, 9 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi index 3458be7f7f6114..f9ed52373fab04 100644 --- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi @@ -525,15 +525,6 @@ reg = <0 0x10007000 0 0x100>; }; - timer: timer@10008000 { - compatible = "mediatek,mt8173-timer", - "mediatek,mt6577-timer"; - reg = <0 0x10008000 0 0x1000>; - interrupts = ; - clocks = <&infracfg CLK_INFRA_CLK_13M>, - <&topckgen CLK_TOP_RTC_SEL>; - }; - pwrap: pwrap@1000d000 { compatible = "mediatek,mt8173-pwrap"; reg = <0 0x1000d000 0 0x1000>; From 80fa32844db42de4d017623138c5fc33ca153c4c Mon Sep 17 00:00:00 2001 From: Jens Wiklander Date: Wed, 17 Aug 2016 14:08:08 +0200 Subject: [PATCH 02/18] arm64: dt: OP-TEE for foundation-v8 **not for mainline** Configures foundation-v8 with OP-TEE. Signed-off-by: Jens Wiklander [jf: rebase onto v5.9-rc7] Signed-off-by: Jerome Forissier --- arch/arm64/boot/dts/arm/foundation-v8.dtsi | 27 ++++++++++++++-------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/arch/arm64/boot/dts/arm/foundation-v8.dtsi b/arch/arm64/boot/dts/arm/foundation-v8.dtsi index 083be35495b395..86a3234871e045 100644 --- a/arch/arm64/boot/dts/arm/foundation-v8.dtsi +++ b/arch/arm64/boot/dts/arm/foundation-v8.dtsi @@ -24,7 +24,6 @@ aliases { serial0 = &v2m_serial0; - serial1 = &v2m_serial1; serial2 = &v2m_serial2; serial3 = &v2m_serial3; }; @@ -71,6 +70,16 @@ <0x00000008 0x80000000 0 0x80000000>; }; + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + optee@0x83000000 { + reg = <0x00000000 0x83000000 0 0x01000000>; + }; + }; + timer { compatible = "arm,armv8-timer"; interrupts = , @@ -205,14 +214,6 @@ clock-names = "uartclk", "apb_pclk"; }; - v2m_serial1: serial@a0000 { - compatible = "arm,pl011", "arm,primecell"; - reg = <0x0a0000 0x1000>; - interrupts = <6>; - clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>; - clock-names = "uartclk", "apb_pclk"; - }; - v2m_serial2: serial@b0000 { compatible = "arm,pl011", "arm,primecell"; reg = <0x0b0000 0x1000>; @@ -236,4 +237,12 @@ }; }; }; + + firmware { + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; + }; From 77807dea82d19383e30899ebae9925f4ee590199 Mon Sep 17 00:00:00 2001 From: Jens Wiklander Date: Tue, 29 Mar 2016 11:01:28 +0200 Subject: [PATCH 03/18] arm64: dt: OP-TEE for Juno **not for mainline** Configures Juno with OP-TEE. Reviewed-by: Pascal Brand Signed-off-by: Jens Wiklander [jf: rebase onto v5.9-rc7] Signed-off-by: Jerome Forissier --- arch/arm64/boot/dts/arm/juno-base.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/arm64/boot/dts/arm/juno-base.dtsi b/arch/arm64/boot/dts/arm/juno-base.dtsi index 055764d0b9e5ad..d500b22bb545cd 100644 --- a/arch/arm64/boot/dts/arm/juno-base.dtsi +++ b/arch/arm64/boot/dts/arm/juno-base.dtsi @@ -966,6 +966,17 @@ <0x00000008 0x80000000 0x1 0x80000000>; }; + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + /* Shared memory between secure and non-secure world */ + optee@0xfee00000 { + reg = <0x00000000 0xfee00000 0 0x00200000>; + }; + }; + bus@8000000 { #interrupt-cells = <1>; interrupt-map-mask = <0 0 15>; @@ -993,4 +1004,11 @@ interrupt-map-mask = <0 0>; interrupt-map = <0 0 &gic 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; }; + + firmware { + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; }; From 8896662f3508001c9594d81d22ec1b40ed0bbd85 Mon Sep 17 00:00:00 2001 From: Jens Wiklander Date: Fri, 2 Dec 2016 09:45:32 +0100 Subject: [PATCH 04/18] arm64: dt: Add no-map to the reserved-memory node for OP-TEE for foundation-v8 **not for mainline** All the platforms that reserve memory for OP-TEE statically via the DT (i.e., not those that reserve it via UEFI or that patch the DT dynamically thanks to OP-TEE's CFG_DT option) have to mark it 'no-map' so that only the TEE driver may map it. Signed-off-by: Jens Wiklander --- arch/arm64/boot/dts/arm/foundation-v8.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/arm/foundation-v8.dtsi b/arch/arm64/boot/dts/arm/foundation-v8.dtsi index 86a3234871e045..524ef3a0dfc3d9 100644 --- a/arch/arm64/boot/dts/arm/foundation-v8.dtsi +++ b/arch/arm64/boot/dts/arm/foundation-v8.dtsi @@ -77,6 +77,7 @@ optee@0x83000000 { reg = <0x00000000 0x83000000 0 0x01000000>; + no-map; }; }; From cc033c2f130659a803b38144c15bc4bed3b43acb Mon Sep 17 00:00:00 2001 From: Jens Wiklander Date: Tue, 3 Jan 2017 17:09:23 +0100 Subject: [PATCH 05/18] arm64: dt: Add no-map to the reserved-memory node for OP-TEE for juno **not for mainline** All the platforms that reserve memory for OP-TEE statically via the DT (i.e., not those that reserve it via UEFI or that patch the DT dynamically thanks to OP-TEE's CFG_DT option) have to mark it 'no-map' so that only the TEE driver may map it. Signed-off-by: Jens Wiklander --- arch/arm64/boot/dts/arm/juno-base.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/arm/juno-base.dtsi b/arch/arm64/boot/dts/arm/juno-base.dtsi index d500b22bb545cd..8424bbb65d300f 100644 --- a/arch/arm64/boot/dts/arm/juno-base.dtsi +++ b/arch/arm64/boot/dts/arm/juno-base.dtsi @@ -974,6 +974,7 @@ /* Shared memory between secure and non-secure world */ optee@0xfee00000 { reg = <0x00000000 0xfee00000 0 0x00200000>; + no-map; }; }; From f3ac939ec7a0adf138f0309105be7ebbb0330d85 Mon Sep 17 00:00:00 2001 From: Joakim Bech Date: Thu, 24 Mar 2016 09:50:14 +0100 Subject: [PATCH 06/18] arm64: dt: Add OP-TEE firmware to mt8173 **not for mainline** Signed-off-by: Joakim Bech Reviewed-by: Pascal Brand Reviewed-by: Jerome Forissier --- arch/arm64/boot/dts/mediatek/mt8173-evb.dts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm64/boot/dts/mediatek/mt8173-evb.dts b/arch/arm64/boot/dts/mediatek/mt8173-evb.dts index bb4671c18e3bd4..15313bdce072e3 100644 --- a/arch/arm64/boot/dts/mediatek/mt8173-evb.dts +++ b/arch/arm64/boot/dts/mediatek/mt8173-evb.dts @@ -61,6 +61,13 @@ gpio = <&pio 9 GPIO_ACTIVE_HIGH>; enable-active-high; }; + + firmware { + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; }; &mfg_async { From 36ea285e581ef5cfb96631d2f59726b6d1f93181 Mon Sep 17 00:00:00 2001 From: Igor Opaniuk Date: Mon, 11 May 2020 19:10:48 +0300 Subject: [PATCH 07/18] arm64: dts: hi3798cv200-poplar: memreserve for bootloader Reserve memory for bootloader purposes. Acked-by: Jerome Forissier Signed-off-by: Igor Opaniuk --- arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts b/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts index 7d370dac4c8571..ec3b55eb49042d 100644 --- a/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts +++ b/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts @@ -6,6 +6,7 @@ */ /dts-v1/; +/memreserve/ 0x00000000 0x04080000; #include #include "hi3798cv200.dtsi" From d01ca7e8c4b3e59c73541e15bfc77998890c53c9 Mon Sep 17 00:00:00 2001 From: Igor Opaniuk Date: Mon, 11 May 2020 19:09:31 +0300 Subject: [PATCH 08/18] arm64: dts: hi3798cv200-poplar: add optee node Add optee node, so OP-TEE driver is probed properly. Acked-by: Jerome Forissier Signed-off-by: Igor Opaniuk --- arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts b/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts index ec3b55eb49042d..3bb161655313c4 100644 --- a/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts +++ b/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts @@ -71,6 +71,13 @@ gpio = <&gpio6 7 0>; enable-active-high; }; + + firmware { + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; }; &ehci { From 53aff13d77f018f21b646667a95ed0fd24936857 Mon Sep 17 00:00:00 2001 From: Etienne Carriere Date: Wed, 27 May 2020 10:38:12 +0200 Subject: [PATCH 09/18] ARM: dts: stm32: Define OP-TEE resources on stm32mp15 and enable on DK2 Define OP-TEE firmware node for stm32mp15 based platforms. The node if disable by default. Enable the OP-TEE node and define OP-TEE reserved memory for stm32mp157c-dk2. Signed-off-by: Etienne Carriere [jf: rebase onto v5.9] Signed-off-by: Jerome Forissier --- arch/arm/boot/dts/st/stm32mp151.dtsi | 8 ++++++++ arch/arm/boot/dts/st/stm32mp157c-dk2.dts | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/arch/arm/boot/dts/st/stm32mp151.dtsi b/arch/arm/boot/dts/st/stm32mp151.dtsi index 4f878ec102c1f6..83e7c811ec2499 100644 --- a/arch/arm/boot/dts/st/stm32mp151.dtsi +++ b/arch/arm/boot/dts/st/stm32mp151.dtsi @@ -35,6 +35,14 @@ method = "smc"; }; + firmware { + optee: optee { + compatible = "linaro,optee-tz"; + method = "smc"; + status = "disabled"; + }; + }; + intc: interrupt-controller@a0021000 { compatible = "arm,cortex-a7-gic"; #interrupt-cells = <3>; diff --git a/arch/arm/boot/dts/st/stm32mp157c-dk2.dts b/arch/arm/boot/dts/st/stm32mp157c-dk2.dts index 7a701f7ef0c704..dfff88dc209d8d 100644 --- a/arch/arm/boot/dts/st/stm32mp157c-dk2.dts +++ b/arch/arm/boot/dts/st/stm32mp157c-dk2.dts @@ -16,6 +16,13 @@ model = "STMicroelectronics STM32MP157C-DK2 Discovery Board"; compatible = "st,stm32mp157c-dk2", "st,stm32mp157"; + reserved-memory { + optee_memory: optee@0xde000000 { + reg = <0xde000000 0x02000000>; + no-map; + }; + }; + aliases { ethernet0 = ðernet0; serial3 = &usart2; @@ -91,3 +98,7 @@ pinctrl-2 = <&usart2_idle_pins_c>; status = "disabled"; }; + +&optee { + status = "okay"; +}; From 5d92e7f841ef030e88ef73f1daec68fcf2956a2a Mon Sep 17 00:00:00 2001 From: Javier Almansa Sobrino Date: Tue, 2 Feb 2021 14:12:08 +0000 Subject: [PATCH 10/18] Enable Microsoft fTPM driver on Arm Foundation v8 models. Signed-off-by: Javier Almansa Sobrino Acked-by: Joakim Bech Link: https://github.com/linaro-swg/linux/pull/85 [jf: not currently intended for upstream; add link to PR] Signed-off-by: Jerome Forissier --- arch/arm64/boot/dts/arm/foundation-v8.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm64/boot/dts/arm/foundation-v8.dtsi b/arch/arm64/boot/dts/arm/foundation-v8.dtsi index 524ef3a0dfc3d9..3310d13de78eba 100644 --- a/arch/arm64/boot/dts/arm/foundation-v8.dtsi +++ b/arch/arm64/boot/dts/arm/foundation-v8.dtsi @@ -28,6 +28,10 @@ serial3 = &v2m_serial3; }; + ftpm { + compatible = "microsoft,ftpm"; + }; + cpus { #address-cells = <2>; #size-cells = <0>; From 57841ba1a614ccf2061eaa6388a3b48a6ab8461d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Cercueil?= Date: Tue, 2 Mar 2021 12:17:04 +0100 Subject: [PATCH 11/18] stm32mp157c-ev1.dts: Fix optee status to 'okay' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The optee device status is disabled by default, change its status to 'okay' in the dts of the EV1 board Signed-off-by: Timothée Cercueil [jf: rebase onto v5.17] Signed-off-by: Jerome Forissier --- arch/arm/boot/dts/st/stm32mp157c-ev1.dts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/st/stm32mp157c-ev1.dts b/arch/arm/boot/dts/st/stm32mp157c-ev1.dts index 9eb9a1bf4f2c14..18fd0d5b6bddf7 100644 --- a/arch/arm/boot/dts/st/stm32mp157c-ev1.dts +++ b/arch/arm/boot/dts/st/stm32mp157c-ev1.dts @@ -411,3 +411,7 @@ st,tune-hs-rx-offset = <2>; st,no-lsfs-sc; }; + +&optee { + status = "okay"; +}; From d0ab07c2b25f1a0f90b086a44e10d96bb54c5bc4 Mon Sep 17 00:00:00 2001 From: Etienne Carriere Date: Tue, 27 Apr 2021 17:32:29 +0200 Subject: [PATCH 12/18] arm: dts: define OP-TEE resources for STM32MP1 ED1 and EV1 This change fixes EV1 configuration which lacked OP-TEE reserved memory. This change also makes ED1 board ready the host OP-TEE by enabling OP-TEE node and defining the OP-TEE reserved memory for that board. This change defines these resources in ED1 DTS file which is included in EV1 DTS file. Signed-off-by: Etienne Carriere Acked-by: Jerome Forissier [jf: rebase onto v5.17] [jf: rebase onto v6.6] Signed-off-by: Jerome Forissier --- arch/arm/boot/dts/st/stm32mp157c-ed1.dts | 9 +++++++++ arch/arm/boot/dts/st/stm32mp157c-ev1.dts | 4 ---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/arch/arm/boot/dts/st/stm32mp157c-ed1.dts b/arch/arm/boot/dts/st/stm32mp157c-ed1.dts index 9cf5ed111b52e1..fa818070baae97 100644 --- a/arch/arm/boot/dts/st/stm32mp157c-ed1.dts +++ b/arch/arm/boot/dts/st/stm32mp157c-ed1.dts @@ -70,6 +70,11 @@ reg = <0x38000000 0x10000>; no-map; }; + + optee_memory: optee@fe000000 { + reg = <0xfe000000 0x2000000>; + no-map; + }; }; led { @@ -333,6 +338,10 @@ status = "okay"; }; +&optee { + status = "okay"; +}; + &pwr_regulators { vdd-supply = <&vdd>; vdd_3v3_usbfs-supply = <&vdd_usb>; diff --git a/arch/arm/boot/dts/st/stm32mp157c-ev1.dts b/arch/arm/boot/dts/st/stm32mp157c-ev1.dts index 18fd0d5b6bddf7..9eb9a1bf4f2c14 100644 --- a/arch/arm/boot/dts/st/stm32mp157c-ev1.dts +++ b/arch/arm/boot/dts/st/stm32mp157c-ev1.dts @@ -411,7 +411,3 @@ st,tune-hs-rx-offset = <2>; st,no-lsfs-sc; }; - -&optee { - status = "okay"; -}; From 9eda7bf098fa9f7f6edefea23f02121870aed830 Mon Sep 17 00:00:00 2001 From: Jens Wiklander Date: Thu, 30 Jun 2022 21:48:49 +0200 Subject: [PATCH 13/18] arm64: dt: OP-TEE for FVP Base RevC Configures FVP Base RevC with OP-TEE. With commit 1bf41f5d9b0d ("fvp: add Trusted Services support") in https://github.com/OP-TEE/build there is support for building running with the FVP Base RevC model. However, some updates to the DTB passed to the kernel is missing for the OP-TEE driver to be probed. So fix that by adding an OP-TEE node in the DTS. Signed-off-by: Jens Wiklander --- arch/arm64/boot/dts/arm/fvp-base-revc.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm64/boot/dts/arm/fvp-base-revc.dts b/arch/arm64/boot/dts/arm/fvp-base-revc.dts index 19973ab4ea6b53..81c2fcb14cb177 100644 --- a/arch/arm64/boot/dts/arm/fvp-base-revc.dts +++ b/arch/arm64/boot/dts/arm/fvp-base-revc.dts @@ -185,6 +185,11 @@ reg = <0x00000000 0x18000000 0 0x00800000>; no-map; }; + + optee@83000000 { + reg = <0x00000000 0x83000000 0 0x01000000>; + no-map; + }; }; gic: interrupt-controller@2f000000 { @@ -320,4 +325,11 @@ <0 0 44 &gic 0 0 GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, <0 0 46 &gic 0 0 GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; }; + + firmware { + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; }; From 5f13fd315c8883e2c3bf122b40ab266b28cd8589 Mon Sep 17 00:00:00 2001 From: Johann Neuhauser Date: Wed, 16 Feb 2022 12:54:52 +0100 Subject: [PATCH 14/18] arm: dts: define OP-TEE resources for STM32MP15 DHCOM based boards Enable OP-TEE node defined in stm32mp151.dtsi and define OP-TEE reserverd memory for all boards based on STM32MP15 DHCOM. Signed-off-by: Johann Neuhauser Acked-by: Etienne Carriere --- arch/arm/boot/dts/st/stm32mp15xx-dhcom-som.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/st/stm32mp15xx-dhcom-som.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-dhcom-som.dtsi index 74a11ccc5333f8..fc9a5aadc1f685 100644 --- a/arch/arm/boot/dts/st/stm32mp15xx-dhcom-som.dtsi +++ b/arch/arm/boot/dts/st/stm32mp15xx-dhcom-som.dtsi @@ -61,6 +61,11 @@ reg = <0x38000000 0x10000>; no-map; }; + + optee_memory: optee@fe000000 { + reg = <0xfe000000 0x2000000>; + no-map; + }; }; ethernet_vio: vioregulator { @@ -423,6 +428,10 @@ status = "okay"; }; +&optee { + status = "okay"; +}; + &pwr_regulators { vdd-supply = <&vdd>; vdd_3v3_usbfs-supply = <&vdd_usb>; From b39bb52521d0d30ed6a25ab1982cd4efdb650e63 Mon Sep 17 00:00:00 2001 From: Johann Neuhauser Date: Wed, 13 Jul 2022 15:40:37 +0200 Subject: [PATCH 15/18] arm: dts: define OP-TEE resources for STM32MP15 DHCOR based boards Enable OP-TEE node defined in stm32mp151.dtsi and define OP-TEE reserverd memory for all boards based on STM32MP15 DHCOR. Signed-off-by: Johann Neuhauser Acked-by: Etienne Carriere --- arch/arm/boot/dts/st/stm32mp15xx-dhcor-som.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/st/stm32mp15xx-dhcor-som.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-dhcor-som.dtsi index 89881a26c61418..f1e311622747a5 100644 --- a/arch/arm/boot/dts/st/stm32mp15xx-dhcor-som.dtsi +++ b/arch/arm/boot/dts/st/stm32mp15xx-dhcor-som.dtsi @@ -60,6 +60,11 @@ reg = <0x38000000 0x10000>; no-map; }; + + optee_memory: optee@fe000000 { + reg = <0xfe000000 0x2000000>; + no-map; + }; }; }; @@ -234,6 +239,10 @@ status = "okay"; }; +&optee { + status = "okay"; +}; + &pwr_regulators { vdd-supply = <&vdd>; vdd_3v3_usbfs-supply = <&vdd_usb>; From ca2a2efc65cd98cf351154f0c059331d39e6a838 Mon Sep 17 00:00:00 2001 From: Jerome Forissier Date: Mon, 14 Nov 2022 11:54:08 +0100 Subject: [PATCH 16/18] arm64: dt: rockpi4: disable node usbdrd_dwc3_0 **not for mainline** If a USB-A to USB-A cable is used to flash the RockPi4 eMMC as described in [1], it is likely that the board will be booted with the cable still plugged into the board and into the computer on the other side. Such a configuration results in periodic error messages from the kernel: [ 4.832697] usb usb6-port1: Cannot enable. Maybe the USB cable is bad? [ 4.833416] usb usb6-port1: config error That is annoying, especially since the messages are also sent to the console by default, which could mess up with CI scripts. Therefore, disable this port (it is the upper USB3 blue port; the lower one will still work fine). Link: [1] https://wiki.radxa.com/Rockpi4/dev/usb-install Signed-off-by: Jerome Forissier Acked-by: Jens Wiklander Acked-by: Joakim Bech --- arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi index 9666504cd1c146..b1194c3ce6b2c1 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi @@ -766,7 +766,7 @@ }; &usbdrd_dwc3_0 { - status = "okay"; + status = "disabled"; dr_mode = "host"; }; From 4da2533c1595d4500e4a7a190b7380efe500611e Mon Sep 17 00:00:00 2001 From: Jerome Forissier Date: Tue, 15 Nov 2022 10:01:12 +0100 Subject: [PATCH 17/18] arm64: dt: rockpi4: add OP-TEE nodes **not for mainline** Add optee node as well as reserved memory to the Rockpi4 DT. Signed-off-by: Jerome Forissier --- .../boot/dts/rockchip/rk3399-rock-pi-4.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi index b1194c3ce6b2c1..5697235ed90775 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi @@ -165,6 +165,24 @@ regulator-min-microvolt = <800000>; regulator-max-microvolt = <1400000>; }; + + firmware { + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + optee@30000000 { + reg = <0x0 0x30000000 0x0 0x2400000>; + no-map; + }; + }; }; &cpu_l0 { From a267ac03f374a1042fbf254badeb08badae9e888 Mon Sep 17 00:00:00 2001 From: Oleg Kharitonov Date: Tue, 18 Feb 2025 16:10:41 +0100 Subject: [PATCH 18/18] Implements LOGIN_APPLICATION and LOGIN_USER_APPLICATION Acked-by: Jerome Forissier Signed-off-by: Oleg Kharitonov --- drivers/tee/tee_core.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c index d113679b1e2d7a..21b1d6953e18d3 100644 --- a/drivers/tee/tee_core.c +++ b/drivers/tee/tee_core.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -222,6 +223,11 @@ int tee_session_calc_client_uuid(uuid_t *uuid, u32 connection_method, * For TEEC_LOGIN_GROUP: * gid= * + * For TEEC_LOGIN_APPLICATION: + * path= + * + * For TEEC_LOGIN_USER_APPLICATION: + * uid=,path= */ name = kzalloc(TEE_UUID_NS_NAME_SIZE, GFP_KERNEL); @@ -254,6 +260,38 @@ int tee_session_calc_client_uuid(uuid_t *uuid, u32 connection_method, } break; + case TEE_IOCTL_LOGIN_APPLICATION: + { + char path[PATH_MAX]; + if (get_cmdline(current, path, sizeof(path)) >= sizeof(path)) { + rc = -E2BIG; + goto out_free_name; + } + name_len = snprintf(name, TEE_UUID_NS_NAME_SIZE, "path=%s", + path); + if (name_len >= TEE_UUID_NS_NAME_SIZE) { + rc = -E2BIG; + goto out_free_name; + } + } + break; + + case TEE_IOCTL_LOGIN_USER_APPLICATION: + { + char path[PATH_MAX]; + if (get_cmdline(current, path, sizeof(path)) >= sizeof(path)) { + rc = -E2BIG; + goto out_free_name; + } + name_len = snprintf(name, TEE_UUID_NS_NAME_SIZE, "uid=%x,path=%s", + current_euid().val, path); + if (name_len >= TEE_UUID_NS_NAME_SIZE) { + rc = -E2BIG; + goto out_free_name; + } + } + break; + default: rc = -EINVAL; goto out_free_name;