From af3de6cd042c89ae2e8d07d503e0a07129e1296c Mon Sep 17 00:00:00 2001
From: Bowen Wang <wangbowen6@xiaomi.com>
Date: Thu, 16 Nov 2023 14:52:48 +0800
Subject: [PATCH] libmetal/nuttx/io.c: align access when read/write size = 1,
 2, 4, 8

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
---
 lib/system/nuttx/io.c | 25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/lib/system/nuttx/io.c libmetal/lib/system/nuttx/io.c
index 4fa4727..3ce9cbe 100644
--- a/lib/system/nuttx/io.c
+++ libmetal/lib/system/nuttx/io.c
@@ -37,7 +37,17 @@ static int metal_io_block_read_(struct metal_io_region *io,
 	void *va = metal_io_virt(io, offset);
 
 	metal_cache_invalidate(va, len);
-	memcpy(dst, va, len);
+	if (len == 1)
+		*(uint8_t *)dst = *(uint8_t *)va;
+	else if (len == 2)
+		*(uint16_t *)dst = *(uint16_t *)va;
+	else if (len == 4)
+		*(uint32_t *)dst = *(uint32_t *)va;
+	else if (len == 8) {
+		*(uint32_t *)dst = *(uint32_t *)va;
+		*(uint32_t *)(dst + 4) = *(uint32_t *)(va + 4);
+	} else
+		memcpy(dst, va, len);
 
 	return len;
 }
@@ -50,7 +60,18 @@ static int metal_io_block_write_(struct metal_io_region *io,
 {
 	void *va = metal_io_virt(io, offset);
 
-	memcpy(va, src, len);
+	if (len == 1)
+		*(uint8_t *)va = *(uint8_t *)src;
+	else if (len == 2)
+		*(uint16_t *)va = *(uint16_t *)src;
+	else if (len == 4)
+		*(uint32_t *)va = *(uint32_t *)src;
+	else if (len == 8) {
+		*(uint32_t *)va = *(uint32_t *)src;
+		*(uint32_t *)(va + 4) = *(uint32_t *)(src + 4);
+	} else
+		memcpy(va, src, len);
+
 	metal_cache_flush(va, len);
 
 	return len;
-- 
2.34.1

