Leave a clue about where the seemingly magic values come from, as it
is not obvious and requires some digging downstream..
Reviewed-by: Dikshita Agarwal <[email protected]>
Signed-off-by: Konrad Dybcio <[email protected]>
---
drivers/media/platform/qcom/venus/firmware.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c
index cfb11c551167..a4cd919e1dbe 100644
--- a/drivers/media/platform/qcom/venus/firmware.c
+++ b/drivers/media/platform/qcom/venus/firmware.c
@@ -241,6 +241,13 @@ int venus_boot(struct venus_core *core)
return ret;
if (core->use_tz && res->cp_size) {
+ /*
+ * Clues for porting using downstream data:
+ * cp_start = 0
+ * cp_size = venus_ns/virtual-addr-pool[0] (yes, addr not size)
+ * cp_nonpixel_start = venus_sec_non_pixel/virtual-addr-pool[0]
+ * cp_nonpixel_size = venus_sec_non_pixel/virtual-addr-pool[1]
+ */
ret = qcom_scm_mem_protect_video_var(res->cp_start,
res->cp_size,
res->cp_nonpixel_start,
--
2.40.1
On 5/5/2023 6:27 PM, Vikash Garodia wrote:
>
> On 5/4/2023 1:31 PM, Konrad Dybcio wrote:
>> Leave a clue about where the seemingly magic values come from, as it
>> is not obvious and requires some digging downstream..
Rephrase the commit text.
>> Reviewed-by: Dikshita Agarwal <[email protected]>
>> Signed-off-by: Konrad Dybcio <[email protected]>
> Reviewed-by: Vikash Garodia <[email protected]>
>> ---
>> drivers/media/platform/qcom/venus/firmware.c | 7 +++++++
>> 1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/media/platform/qcom/venus/firmware.c
>> b/drivers/media/platform/qcom/venus/firmware.c
>> index cfb11c551167..a4cd919e1dbe 100644
>> --- a/drivers/media/platform/qcom/venus/firmware.c
>> +++ b/drivers/media/platform/qcom/venus/firmware.c
>> @@ -241,6 +241,13 @@ int venus_boot(struct venus_core *core)
>> return ret;
>> if (core->use_tz && res->cp_size) {
>> + /*
>> + * Clues for porting using downstream data:
>> + * cp_start = 0
>> + * cp_size = venus_ns/virtual-addr-pool[0] (yes, addr not size)
>
> The field is the start address of ns context bank. Since the cp_start
> is 0, the start address for (next) non-secure context bank
>
> is interpreted as size of the (previous) content protection region.
>
>> + * cp_nonpixel_start = venus_sec_non_pixel/virtual-addr-pool[0]
>> + * cp_nonpixel_size = venus_sec_non_pixel/virtual-addr-pool[1]
>> + */
>> ret = qcom_scm_mem_protect_video_var(res->cp_start,
>> res->cp_size,
>> res->cp_nonpixel_start,
>>
On 5/4/2023 1:31 PM, Konrad Dybcio wrote:
> Leave a clue about where the seemingly magic values come from, as it
> is not obvious and requires some digging downstream..
>
> Reviewed-by: Dikshita Agarwal <[email protected]>
> Signed-off-by: Konrad Dybcio <[email protected]>
Reviewed-by: Vikash Garodia <[email protected]>
> ---
> drivers/media/platform/qcom/venus/firmware.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c
> index cfb11c551167..a4cd919e1dbe 100644
> --- a/drivers/media/platform/qcom/venus/firmware.c
> +++ b/drivers/media/platform/qcom/venus/firmware.c
> @@ -241,6 +241,13 @@ int venus_boot(struct venus_core *core)
> return ret;
>
> if (core->use_tz && res->cp_size) {
> + /*
> + * Clues for porting using downstream data:
> + * cp_start = 0
> + * cp_size = venus_ns/virtual-addr-pool[0] (yes, addr not size)
The field is the start address of ns context bank. Since the cp_start is
0, the start address for (next) non-secure context bank
is interpreted as size of the (previous) content protection region.
> + * cp_nonpixel_start = venus_sec_non_pixel/virtual-addr-pool[0]
> + * cp_nonpixel_size = venus_sec_non_pixel/virtual-addr-pool[1]
> + */
> ret = qcom_scm_mem_protect_video_var(res->cp_start,
> res->cp_size,
> res->cp_nonpixel_start,
>
On 5.05.2023 15:00, Vikash Garodia wrote:
>
> On 5/5/2023 6:27 PM, Vikash Garodia wrote:
>>
>> On 5/4/2023 1:31 PM, Konrad Dybcio wrote:
>>> Leave a clue about where the seemingly magic values come from, as it
>>> is not obvious and requires some digging downstream..
> Rephrase the commit text.
Please be more specific, do you want me to use the
explanations you gave in the previous reply?
Konrad
>>> Reviewed-by: Dikshita Agarwal <[email protected]>
>>> Signed-off-by: Konrad Dybcio <[email protected]>
>> Reviewed-by: Vikash Garodia <[email protected]>
>>> ---
>>> drivers/media/platform/qcom/venus/firmware.c | 7 +++++++
>>> 1 file changed, 7 insertions(+)
>>>
>>> diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c
>>> index cfb11c551167..a4cd919e1dbe 100644
>>> --- a/drivers/media/platform/qcom/venus/firmware.c
>>> +++ b/drivers/media/platform/qcom/venus/firmware.c
>>> @@ -241,6 +241,13 @@ int venus_boot(struct venus_core *core)
>>> return ret;
>>> if (core->use_tz && res->cp_size) {
>>> + /*
>>> + * Clues for porting using downstream data:
>>> + * cp_start = 0
>>> + * cp_size = venus_ns/virtual-addr-pool[0] (yes, addr not size)
>>
>> The field is the start address of ns context bank. Since the cp_start is 0, the start address for (next) non-secure context bank
>>
>> is interpreted as size of the (previous) content protection region.
>>
>>> + * cp_nonpixel_start = venus_sec_non_pixel/virtual-addr-pool[0]
>>> + * cp_nonpixel_size = venus_sec_non_pixel/virtual-addr-pool[1]
>>> + */
>>> ret = qcom_scm_mem_protect_video_var(res->cp_start,
>>> res->cp_size,
>>> res->cp_nonpixel_start,
>>>
On 5/6/2023 12:54 AM, Konrad Dybcio wrote:
>
>
> On 5.05.2023 15:00, Vikash Garodia wrote:
>>
>> On 5/5/2023 6:27 PM, Vikash Garodia wrote:
>>>
>>> On 5/4/2023 1:31 PM, Konrad Dybcio wrote:
>>>> Leave a clue about where the seemingly magic values come from, as it
>>>> is not obvious and requires some digging downstream..
>> Rephrase the commit text.
> Please be more specific, do you want me to use the
> explanations you gave in the previous reply?
Something which describes the patch like - Add comments to describe the
arguments of the qcom_scm_mem_protect_video_var TZ call. The TZ call programs
the video hardware with CP and non-CP VARs, and the comments describes these VARs.
> Konrad
>>>> Reviewed-by: Dikshita Agarwal <[email protected]>
>>>> Signed-off-by: Konrad Dybcio <[email protected]>
>>> Reviewed-by: Vikash Garodia <[email protected]>
>>>> ---
>>>> drivers/media/platform/qcom/venus/firmware.c | 7 +++++++
>>>> 1 file changed, 7 insertions(+)
>>>>
>>>> diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c
>>>> index cfb11c551167..a4cd919e1dbe 100644
>>>> --- a/drivers/media/platform/qcom/venus/firmware.c
>>>> +++ b/drivers/media/platform/qcom/venus/firmware.c
>>>> @@ -241,6 +241,13 @@ int venus_boot(struct venus_core *core)
>>>> return ret;
>>>> if (core->use_tz && res->cp_size) {
>>>> + /*
>>>> + * Clues for porting using downstream data:
>>>> + * cp_start = 0
>>>> + * cp_size = venus_ns/virtual-addr-pool[0] (yes, addr not size)
>>>
>>> The field is the start address of ns context bank. Since the cp_start is 0, the start address for (next) non-secure context bank
>>>
>>> is interpreted as size of the (previous) content protection region.
>>>
>>>> + * cp_nonpixel_start = venus_sec_non_pixel/virtual-addr-pool[0]
>>>> + * cp_nonpixel_size = venus_sec_non_pixel/virtual-addr-pool[1]
>>>> + */
>>>> ret = qcom_scm_mem_protect_video_var(res->cp_start,
>>>> res->cp_size,
>>>> res->cp_nonpixel_start,
>>>>