summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/FirmwareStorageFormat
diff options
context:
space:
mode:
authorJohnny.Fan <Johnny.Fan@cixtech.com>2025-04-15 10:33:55 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2025-04-22 09:23:32 +0000
commitf96d38f432b680b0b652842b98153fef13e56329 (patch)
tree5e6c9e402df89b8ba6f619e154df35fb4e66bb7f /BaseTools/Source/Python/FirmwareStorageFormat
parent8406e672e846e37dc292065f36d25242d961647b (diff)
downloadedk2-f96d38f432b680b0b652842b98153fef13e56329.tar.gz
edk2-f96d38f432b680b0b652842b98153fef13e56329.tar.bz2
edk2-f96d38f432b680b0b652842b98153fef13e56329.zip
ArmPkg/ArmScmiDxe: Fix SCMI param overwrite in multi-transaction scenario
Fix an issue where input parameters in SCMI messages may be overwritten by return values during repeated transactions when retrieving large data sets. This issue affects: 1. ClockDescribeRates: when the number of clock rates exceeds the transfer limit. According to the SCMI specification (Section 4.6.2.5), the first and second parameters are initially used to pass clock_id and rate_index. However, due to SCMI’s shared memory communication mechanism, these same memory locations are later reused to return status and num_rate_flags. 2. PerformanceDescribeLevels: when the number of performance levels is too large to return in a single response. As described in Section 4.5.3.5, the first and second parameters are initially used for domain_id and level_index, but are overwritten with status and num_levels in the return. Because SCMI reuses the same shared memory buffer for both input and output, the return values can override input parameters if the buffer is not properly re-initialized before each request. This patch ensures that the first and second parameters are correctly set before every transaction to preserve input integrity and ensure correct protocol behavior. Signed-off-by: jie.fu <jie.fu@cixtech.com>
Diffstat (limited to 'BaseTools/Source/Python/FirmwareStorageFormat')
0 files changed, 0 insertions, 0 deletions