summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2015-08-10 20:44:29 -0600
committerSimon Glass <sjg@chromium.org>2015-08-14 09:50:07 -0600
commit2afddae07523f23f77acd066ad1719f53d289f98 (patch)
treea73fe29f61e4d3b0c9cfc7e633eeb36cf8b659de
parent93afae5d055bc5467d49f211b2167f6f0f4e39f7 (diff)
downloadu-boot-imx-2afddae07523f23f77acd066ad1719f53d289f98.zip
u-boot-imx-2afddae07523f23f77acd066ad1719f53d289f98.tar.gz
u-boot-imx-2afddae07523f23f77acd066ad1719f53d289f98.tar.bz2
Align global_data to a 16-byte boundary
Some archs like to have larger alignment for their global data. Use 16 bytes which suits all current archs. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
-rw-r--r--common/board_f.c1
-rw-r--r--include/asm-generic/global_data.h3
2 files changed, 3 insertions, 1 deletions
diff --git a/common/board_f.c b/common/board_f.c
index 8cca4de..74f77f1 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -499,6 +499,7 @@ static int setup_machine(void)
static int reserve_global_data(void)
{
gd->start_addr_sp -= sizeof(gd_t);
+ gd->start_addr_sp &= ~0xf;
gd->new_gd = (gd_t *)map_sysmem(gd->start_addr_sp, sizeof(gd_t));
debug("Reserving %zu Bytes for Global Data at: %08lx\n",
sizeof(gd_t), gd->start_addr_sp);
diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h
index 2155265..cc369fc 100644
--- a/include/asm-generic/global_data.h
+++ b/include/asm-generic/global_data.h
@@ -99,7 +99,8 @@ typedef struct global_data {
int pcidelay_done;
#endif
struct udevice *cur_serial_dev; /* current serial device */
- struct arch_global_data arch; /* architecture-specific data */
+ /* arch-specific data */
+ struct arch_global_data arch __attribute__((aligned(16)));
} gd_t;
#endif