[rtems-docs commit] cpu-supplement: Add note about device memory
Joel Sherrill
joel at rtems.org
Fri Mar 25 15:42:05 UTC 2022
Module: rtems-docs
Branch: master
Commit: df8261a46e9614f92023bb575fad7873b9d77302
Changeset: http://git.rtems.org/rtems-docs/commit/?id=df8261a46e9614f92023bb575fad7873b9d77302
Author: Kinsey Moore <kinsey.moore at oarcorp.com>
Date: Fri Mar 4 13:47:40 2022 -0600
cpu-supplement: Add note about device memory
Add information about restricted use of device memory for ARM and
AArch64.
---
cpu-supplement/aarch64.rst | 5 +++++
cpu-supplement/arm.rst | 6 ++++++
2 files changed, 11 insertions(+)
diff --git a/cpu-supplement/aarch64.rst b/cpu-supplement/aarch64.rst
index 2b3d620..1e9b8d6 100644
--- a/cpu-supplement/aarch64.rst
+++ b/cpu-supplement/aarch64.rst
@@ -73,6 +73,11 @@ A flat 64-bit or 32-bit memory model is supported depending on the selected mult
variant. All AArch64 CPU variants support a built-in MMU for which basic initialization
for a flat memory model is handled.
+Note that memcpy() and memset() must not be used on device memory as those
+functions are hand-optimized and will take advantage of unaligned accesses.
+*As per ARM*(https://developer.arm.com/documentation/ka004708/latest), unaligned
+accesses are not permitted for device memory.
+
Interrupt Processing
====================
diff --git a/cpu-supplement/arm.rst b/cpu-supplement/arm.rst
index ac9e8c6..b92e6d6 100644
--- a/cpu-supplement/arm.rst
+++ b/cpu-supplement/arm.rst
@@ -132,6 +132,12 @@ Memory Model
A flat 32-bit memory model is supported. The board support package must take
care of initializing the MMU if necessary.
+Note that architecture variants which support unaligned accesses must not use
+memcpy() or memset() on device memory as those functions are hand-optimized and
+will take advantage of unaligned accesses where available. *As per ARM*
+(https://developer.arm.com/documentation/ddi0406/c/Application-Level-Architecture/Application-Level-Memory-Model/Alignment-support/Unaligned-data-access-restrictions-in-ARMv7-and-ARMv6),
+unaligned accesses are not permitted for device memory.
+
Interrupt Processing
====================
More information about the vc
mailing list