[dif_kmac] Fix strict-aliasing breaking

Signed-off-by: Douglas Reis <doreis@lowrisc.org>
diff --git a/sw/device/lib/dif/dif_kmac.c b/sw/device/lib/dif/dif_kmac.c
index f4552a7..4b3178c 100644
--- a/sw/device/lib/dif/dif_kmac.c
+++ b/sw/device/lib/dif/dif_kmac.c
@@ -595,17 +595,15 @@
   // will not be byte swapped in big-endian mode.
   const uint8_t *data = (const uint8_t *)msg;
   for (; len != 0 && ((uintptr_t)data) % sizeof(uint32_t); --len) {
-    mmio_region_write8(kmac->base_addr, KMAC_MSG_FIFO_REG_OFFSET,
-                       *data++);
+    mmio_region_write8(kmac->base_addr, KMAC_MSG_FIFO_REG_OFFSET, *data++);
   }
   for (; len >= sizeof(uint32_t); len -= sizeof(uint32_t)) {
     mmio_region_write32(kmac->base_addr, KMAC_MSG_FIFO_REG_OFFSET,
-                        *((const uint32_t *)data));
+                        read_32(data));
     data += sizeof(uint32_t);
   }
   for (; len != 0; --len) {
-    mmio_region_write8(kmac->base_addr, KMAC_MSG_FIFO_REG_OFFSET,
-                       *data++);
+    mmio_region_write8(kmac->base_addr, KMAC_MSG_FIFO_REG_OFFSET, *data++);
   }
 
   if (processed != NULL) {
diff --git a/sw/device/lib/dif/meson.build b/sw/device/lib/dif/meson.build
index 897abf8..b53ed1a 100644
--- a/sw/device/lib/dif/meson.build
+++ b/sw/device/lib/dif/meson.build
@@ -467,6 +467,7 @@
       sw_lib_bitfield,
       sw_lib_mmio,
       sw_lib_dif_autogen_kmac,
+      sw_lib_mem,  
     ],
   )
 )
@@ -476,6 +477,7 @@
     sources: [
       'dif_kmac_unittest.cc',
       'autogen/dif_kmac_autogen_unittest.cc',
+      meson.source_root() / 'sw/device/lib/base/memory.c',
       meson.source_root() / 'sw/device/lib/dif/dif_kmac.c',
       meson.source_root() / 'sw/device/lib/dif/autogen/dif_kmac_autogen.c',
       hw_ip_kmac_reg_h,