[PATCH rtems-libbsd] freebsd/mmcsd: Disable on-device cache usage

Kinsey Moore kinsey.moore at oarcorp.com
Wed Feb 28 17:13:28 UTC 2024


This disables any usage of the on-device R/W cache since all device
cache maintenance functions are compiled out under RTEMS leaving no way
to flush the cache before system reset and making data loss possible.
---
 freebsd/sys/dev/mmc/mmcsd.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/freebsd/sys/dev/mmc/mmcsd.c b/freebsd/sys/dev/mmc/mmcsd.c
index 11cf945f..ff517abc 100644
--- a/freebsd/sys/dev/mmc/mmcsd.c
+++ b/freebsd/sys/dev/mmc/mmcsd.c
@@ -546,6 +546,11 @@ mmcsd_attach(device_t dev)
 	 */
 	rev = ext_csd[EXT_CSD_REV];
 
+/*
+ * Cache flush functions are currently not available. Use of on-device cache can
+ * cause data loss.
+ */
+#ifndef __rtems__
 	/*
 	 * With revision 1.5 (MMC v4.5, EXT_CSD_REV == 6) and later, take
 	 * advantage of the device R/W cache if present and useage is not
@@ -567,6 +572,7 @@ mmcsd_attach(device_t dev)
 				sc->flags |= MMCSD_FLUSH_CACHE;
 		}
 	}
+#endif
 
 	/*
 	 * Ignore user-creatable enhanced user data area and general purpose
-- 
2.39.2



More information about the devel mailing list