On Tue Nov 28, 2023 at 9:14 AM CET, Vikash Garodia wrote: > > On 11/24/2023 9:26 PM, Luca Weiss wrote: > > On Fri Nov 24, 2023 at 2:35 PM CET, Vikash Garodia wrote: > >> > >> > >> On 11/24/2023 6:23 PM, Dmitry Baryshkov wrote: > >>> On Fri, 24 Nov 2023 at 14:30, Vikash Garodia <quic_vgarodia@xxxxxxxxxxx> wrote: > >>>> > >>>> On 11/24/2023 5:05 PM, Luca Weiss wrote: > >>>>> On Fri Nov 24, 2023 at 7:38 AM CET, Vikash Garodia wrote: > >>>>>> > >>>>>> On 11/22/2023 7:50 PM, Luca Weiss wrote: > >>>>>>> On Wed Nov 22, 2023 at 2:17 PM CET, Vikash Garodia wrote: > >>>>>>>> > >>>>>>>> On 10/2/2023 7:50 PM, Luca Weiss wrote: > >>>>>>>>> If the video-firmware node is present, the venus driver assumes we're on > >>>>>>>>> a system that doesn't use TZ for starting venus, like on ChromeOS > >>>>>>>>> devices. > >>>>>>>>> > >>>>>>>>> Move the video-firmware node to chrome-common.dtsi so we can use venus > >>>>>>>>> on a non-ChromeOS devices. > >>>>>>>>> > >>>>>>>>> At the same time also disable the venus node by default in the dtsi, > >>>>>>>>> like it's done on other SoCs. > >>>>>>>>> > >>>>>>>>> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx> > >>>>>>>>> Signed-off-by: Luca Weiss <luca.weiss@xxxxxxxxxxxxx> > >>>>>>>>> --- > >>>>>>>>> arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi | 8 ++++++++ > >>>>>>>>> arch/arm64/boot/dts/qcom/sc7280.dtsi | 6 ++---- > >>>>>>>>> 2 files changed, 10 insertions(+), 4 deletions(-) > >>>>>>>>> > >>>>>>>>> diff --git a/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi b/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi > >>>>>>>>> index 5d462ae14ba1..cd491e46666d 100644 > >>>>>>>>> --- a/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi > >>>>>>>>> +++ b/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi > >>>>>>>>> @@ -104,6 +104,14 @@ &scm { > >>>>>>>>> dma-coherent; > >>>>>>>>> }; > >>>>>>>>> > >>>>>>>>> +&venus { > >>>>>>>>> + status = "okay"; > >>>>>>>>> + > >>>>>>>>> + video-firmware { > >>>>>>>>> + iommus = <&apps_smmu 0x21a2 0x0>; > >>>>>>>>> + }; > >>>>>>>>> +}; > >>>>>>>>> + > >>>>>>>>> &watchdog { > >>>>>>>>> status = "okay"; > >>>>>>>>> }; > >>>>>>>>> diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi > >>>>>>>>> index 66f1eb83cca7..fa53f54d4675 100644 > >>>>>>>>> --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi > >>>>>>>>> +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi > >>>>>>>>> @@ -3740,6 +3740,8 @@ venus: video-codec@aa00000 { > >>>>>>>>> <&apps_smmu 0x2184 0x20>; > >>>>>> 0x2184 is a secure SID. I think qcm6490-fairphone-fp5.dts needs to override the > >>>>>> iommus property as well to retain only the non secure SID i.e 0x2180 ? I am > >>>>>> seeing below crash > >>>>>> > >>>>>> Call trace: > >>>>>> [ 47.663593] qcom_smmu_write_s2cr+0x64/0xa4 > >>>>>> [ 47.663616] arm_smmu_attach_dev+0x120/0x284 > >>>>>> [ 47.663647] __iommu_attach_device+0x24/0xf8 > >>>>>> [ 47.676845] __iommu_device_set_domain+0x70/0xd0 > >>>>>> [ 47.681632] __iommu_group_set_domain_internal+0x60/0x1b4 > >>>>>> [ 47.687218] iommu_setup_default_domain+0x358/0x418 > >>>>>> [ 47.692258] __iommu_probe_device+0x3e4/0x404 > >>>>>> > >>>>>> Could you please reconfirm if Video SID 0x2184 (and mask) is allowed by the > >>>>>> qcm6490-fairphone-fp5 hardware having TZ ? > >>>>> > >>>>> Hi, > >>>>> > >>>>> On FP5 it seems it's no problem to have both SIDs in there, probe and > >>>>> using venus appears to work fine. > >>>>> > >>>>> Are you using different firmware than QCM6490.LA.3.0 on the device where > >>>>> you tested this? > >>>> I was testing this on RB3 board which uses firmware [1]. > >>> > >>> There is something wrong here. > >>> > >>> RB3 board uses venus-5.2 > >>> RB5 board uses vpu-1.0 > >>> Only sc7280 uses vpu-2.0 > >> > >> Tested on QCM6490 IDP board, which is QCOM internal board similar to RB3 gen2. > > > > In any case, I don't know much about the venus & iommu setup here. I can > > try removing the 0x2184 SID and test if venus still works on FP5. > > Please remove 0x2184 SID and confirm specifically encoder works. This SID is for > encoder. > > > Also should the chromebooks keep that iommu entry or not? > Chrome-common can have 0x2184 since its no-TZ based solution. So in sc7280.dtsi, > you can keep the default SID i.e 0x2180 (with respective mask) and in > chrome-common, we can override the iommus property with 0x2180 and 0x2184. Hi Vikash, I'm moving 0x2184 to chrome-common in v3 but I couldn't test venus encoding myself since I just don't know *how* to test it. Would be nice if you could share how you test venus (decoding & encoding) since seemingly nobody (at least in the postmarketOS community) seems to know how to test/use it properly. See also https://wiki.postmarketos.org/wiki/Hardware_video_acceleration Regards Luca > > Regards, > Vikash > > > Regards > > Luca > > > >> > >>>> > >>>> Regards, > >>>> Vikash > >>>> > >>>> [1] > >>>> https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/qcom/vpu-2.0 > >>>> > >>>>>> > >>>>>>>>> memory-region = <&video_mem>; > >>>>>>>>> > >>>>>>>>> + status = "disabled"; > >>>>>>>>> + > >>>>>>>>> video-decoder { > >>>>>>>>> compatible = "venus-decoder"; > >>>>>>>>> }; > >>>>>>>>> @@ -3748,10 +3750,6 @@ video-encoder { > >>>>>>>>> compatible = "venus-encoder"; > >>>>>>>>> }; > >>>>>>>>> > >>>>>>>>> - video-firmware { > >>>>>>>>> - iommus = <&apps_smmu 0x21a2 0x0>; > >>>>>>>>> - }; > >>>>>>>>> - > >>>>>>>>> venus_opp_table: opp-table { > >>>>>>>>> compatible = "operating-points-v2"; > >>>>>>>>> > >>>>>>>>> > >>>>>>>> Changes look good. Is this tested on SC7280 ? > >>>>>>> > >>>>>>> Hi Vikash, > >>>>>>> > >>>>>>> I didn't test it myself on sc7280 (just qcm6490-fp5) but dtx_diff > >>>>>>> reports no differences except for status = okay property being added, so > >>>>>>> there should be no change on those boards. See below. > >>>>>>> > >>>>>>> Regards > >>>>>>> Luca > >>>>>> > >>>>>> I tested on SC7280 (herobrine) and all good. > >>>>> > >>>>> Great, thanks! > >>>>> > >>>>> Regards > >>>>> Luca > >>>>> > >>>>>> > >>>>>> Regards, > >>>>>> Vikash > >>>>> > >>>> > >>> > >>> > >