summaryrefslogtreecommitdiffstats
path: root/bsps/include/dev
diff options
context:
space:
mode:
authorKinsey Moore <kinsey.moore@oarcorp.com>2023-06-21 10:47:33 -0500
committerJoel Sherrill <joel@rtems.org>2023-06-22 10:46:33 -0500
commit333fd02631196f5d0034903f8634bcced32684d0 (patch)
tree72ff573db85e9f98336f1bb091d1f1abecae394e /bsps/include/dev
parentbsps/sparc: Deprecate BSP-specific interrupt API (diff)
downloadrtems-333fd02631196f5d0034903f8634bcced32684d0.tar.bz2
bsps/xqspipsu: Handle SMP systems properly
The NOR driver was not written with SMP systems and caching in mind. This makes the IsBusy flag volatile for updates across cores and introduces cache flushing and invalidation where necessary for data manipulated by the DMA engine in the QSPI peripheral.
Diffstat (limited to 'bsps/include/dev')
-rw-r--r--bsps/include/dev/spi/xqspipsu.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/bsps/include/dev/spi/xqspipsu.h b/bsps/include/dev/spi/xqspipsu.h
index 7d9b662464..92d38eb0c8 100644
--- a/bsps/include/dev/spi/xqspipsu.h
+++ b/bsps/include/dev/spi/xqspipsu.h
@@ -259,6 +259,9 @@ typedef struct {
s32 TxBytes; /**< Number of bytes to transfer (state) */
s32 RxBytes; /**< Number of bytes left to transfer(state) */
s32 GenFifoEntries; /**< Number of Gen FIFO entries remaining */
+#ifdef __rtems__
+ volatile
+#endif
u32 IsBusy; /**< A transfer is in progress (state) */
u32 ReadMode; /**< DMA or IO mode */
u32 GenFifoCS; /**< Gen FIFO chip selection */