diff mbox series

[11/15] platform/x86/amd/pmf: dump policy binary data

Message ID 20230922175056.244940-12-Shyam-sundar.S-k@amd.com (mailing list archive)
State Superseded
Headers show
Series Introduce PMF Smart PC Solution Builder Feature | expand

Commit Message

Shyam Sundar S K Sept. 22, 2023, 5:50 p.m. UTC
Sometimes policy binary retrieved from the BIOS maybe incorrect that can
end up in failing to enable the Smart PC solution feature.

Use print_hex_dump_debug() to dump the policy binary in hex, so that we
debug the issues related to the binary even before sending that to TA.

Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
---
 drivers/platform/x86/amd/pmf/tee-if.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Mario Limonciello Sept. 22, 2023, 7:01 p.m. UTC | #1
On 9/22/2023 12:50, Shyam Sundar S K wrote:
> Sometimes policy binary retrieved from the BIOS maybe incorrect that can
> end up in failing to enable the Smart PC solution feature.
> 
> Use print_hex_dump_debug() to dump the policy binary in hex, so that we
> debug the issues related to the binary even before sending that to TA.
> 
> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
> ---
>   drivers/platform/x86/amd/pmf/tee-if.c | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/platform/x86/amd/pmf/tee-if.c b/drivers/platform/x86/amd/pmf/tee-if.c
> index fa37cfab2dc7..3daa122f35d5 100644
> --- a/drivers/platform/x86/amd/pmf/tee-if.c
> +++ b/drivers/platform/x86/amd/pmf/tee-if.c
> @@ -290,6 +290,9 @@ static ssize_t amd_pmf_get_pb_data(struct file *filp, const char __user *buf,
>   	if (copy_from_user(dev->policy_buf, buf, dev->policy_sz))
>   		return -EFAULT;
>   
> +	print_hex_dump_debug("(pb):  ", DUMP_PREFIX_OFFSET, 16, 1, dev->policy_buf,
> +			     dev->policy_sz, false);
> +

Should this one also be guarded by CONFIG_AMD_PMF_DEBUG or no?

>   	ret = amd_pmf_start_policy_engine(dev);
>   	if (ret)
>   		return -EINVAL;
> @@ -329,6 +332,10 @@ static int amd_pmf_get_bios_buffer(struct amd_pmf_dev *dev)
>   		return -ENOMEM;
>   
>   	memcpy(dev->policy_buf, dev->policy_base, dev->policy_sz);
> +#ifdef CONFIG_AMD_PMF_DEBUG
> +	print_hex_dump_debug("(pb):  ", DUMP_PREFIX_OFFSET, 16, 1, dev->policy_buf,
> +			     dev->policy_sz, false);
> +#endif
>   
>   #ifdef CONFIG_AMD_PMF_DEBUG
>   	if (pb_side_load)

It looks like you can combine the two #ifdef from the previous patches.
Shyam Sundar S K Sept. 30, 2023, 4:41 a.m. UTC | #2
On 9/23/2023 12:31 AM, Mario Limonciello wrote:
> On 9/22/2023 12:50, Shyam Sundar S K wrote:
>> Sometimes policy binary retrieved from the BIOS maybe incorrect that
>> can
>> end up in failing to enable the Smart PC solution feature.
>>
>> Use print_hex_dump_debug() to dump the policy binary in hex, so that we
>> debug the issues related to the binary even before sending that to TA.
>>
>> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
>> ---
>>   drivers/platform/x86/amd/pmf/tee-if.c | 7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/platform/x86/amd/pmf/tee-if.c
>> b/drivers/platform/x86/amd/pmf/tee-if.c
>> index fa37cfab2dc7..3daa122f35d5 100644
>> --- a/drivers/platform/x86/amd/pmf/tee-if.c
>> +++ b/drivers/platform/x86/amd/pmf/tee-if.c
>> @@ -290,6 +290,9 @@ static ssize_t amd_pmf_get_pb_data(struct file
>> *filp, const char __user *buf,
>>       if (copy_from_user(dev->policy_buf, buf, dev->policy_sz))
>>           return -EFAULT;
>>   +    print_hex_dump_debug("(pb):  ", DUMP_PREFIX_OFFSET, 16, 1,
>> dev->policy_buf,
>> +                 dev->policy_sz, false);
>> +
> 
> Should this one also be guarded by CONFIG_AMD_PMF_DEBUG or no?

No, as this dump is called from amd_pmf_get_pb_data() which is already
under CONFIG_AMD_PMF_DEBUG.

> 
>>       ret = amd_pmf_start_policy_engine(dev);
>>       if (ret)
>>           return -EINVAL;
>> @@ -329,6 +332,10 @@ static int amd_pmf_get_bios_buffer(struct
>> amd_pmf_dev *dev)
>>           return -ENOMEM;
>>         memcpy(dev->policy_buf, dev->policy_base, dev->policy_sz);
>> +#ifdef CONFIG_AMD_PMF_DEBUG
>> +    print_hex_dump_debug("(pb):  ", DUMP_PREFIX_OFFSET, 16, 1,
>> dev->policy_buf,
>> +                 dev->policy_sz, false);
>> +#endif
>>     #ifdef CONFIG_AMD_PMF_DEBUG
>>       if (pb_side_load)
> 
> It looks like you can combine the two #ifdef from the previous patches.

Thank you, I have addressed this in v2.

Thanks,
Shyam
diff mbox series

Patch

diff --git a/drivers/platform/x86/amd/pmf/tee-if.c b/drivers/platform/x86/amd/pmf/tee-if.c
index fa37cfab2dc7..3daa122f35d5 100644
--- a/drivers/platform/x86/amd/pmf/tee-if.c
+++ b/drivers/platform/x86/amd/pmf/tee-if.c
@@ -290,6 +290,9 @@  static ssize_t amd_pmf_get_pb_data(struct file *filp, const char __user *buf,
 	if (copy_from_user(dev->policy_buf, buf, dev->policy_sz))
 		return -EFAULT;
 
+	print_hex_dump_debug("(pb):  ", DUMP_PREFIX_OFFSET, 16, 1, dev->policy_buf,
+			     dev->policy_sz, false);
+
 	ret = amd_pmf_start_policy_engine(dev);
 	if (ret)
 		return -EINVAL;
@@ -329,6 +332,10 @@  static int amd_pmf_get_bios_buffer(struct amd_pmf_dev *dev)
 		return -ENOMEM;
 
 	memcpy(dev->policy_buf, dev->policy_base, dev->policy_sz);
+#ifdef CONFIG_AMD_PMF_DEBUG
+	print_hex_dump_debug("(pb):  ", DUMP_PREFIX_OFFSET, 16, 1, dev->policy_buf,
+			     dev->policy_sz, false);
+#endif
 
 #ifdef CONFIG_AMD_PMF_DEBUG
 	if (pb_side_load)