-
Bug
-
Resolution: Fixed
-
High
-
PDK
-
PDK-13312
-
PROCESSOR_SDK_09.00.00
-
PROCESSOR_SDK_09.01.00
-
Description
CPU acquires spinlock on reading the LOCK register, and releases the lock when 1 is written into the LOCK register.
The current implementation of SPINLOCKLockStatusFree is doing a read-modify-write because of the CSL_REG32_FINS usage, which is performing a read and a write. The read will acquire the lock and then release it again. This function should simply be releasing a lock.
Resolution
The functionality only requires the lock to be released for which a write is performed using CSL_REG32_WR. Used CSL_REG32_WR instead of CSL_REG32_FINS for just releasing the lock.
Rootcause
CSL_REG32_FINS was performing an unintended read modify write leading to the lock was acquired and then released.