[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