summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/host_command.c6
-rw-r--r--include/common.h9
2 files changed, 12 insertions, 3 deletions
diff --git a/common/host_command.c b/common/host_command.c
index c6f7ff1dc4..489ae7b35f 100644
--- a/common/host_command.c
+++ b/common/host_command.c
@@ -28,7 +28,11 @@
static struct host_cmd_handler_args *pending_args;
#ifndef CONFIG_LPC
-static uint8_t host_memmap[EC_MEMMAP_SIZE];
+/*
+ * Simulated memory map. Must be word-aligned, because some of the elements
+ * in the memory map are words.
+ */
+static uint8_t host_memmap[EC_MEMMAP_SIZE] __aligned(4);
#endif
static enum {
diff --git a/include/common.h b/include/common.h
index c6eeb11fef..235540d220 100644
--- a/include/common.h
+++ b/include/common.h
@@ -32,9 +32,14 @@
#define REG16(addr) (*(volatile uint16_t *)(addr))
/*
- * Define __packed if someone hasn't beat us to it. Linux kernel style
- * checking prefers __packed over __attribute__((packed)).
+ * Define __aligned(n) and __packed if someone hasn't beat us to it. Linux
+ * kernel style checking prefers these over __attribute__((packed)) and
+ * __attribute__((aligned(n))).
*/
+#ifndef __aligned
+#define __aligned(n) __attribute__((aligned(n)))
+#endif
+
#ifndef __packed
#define __packed __attribute__((packed))
#endif