summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-03-03 09:08:08 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-03-03 09:10:13 +0100
commite468ba5532232e2ea7bac6b0f5787e0a49008a53 (patch)
tree3e4eeb5efae2b54409b6d155d4d8e26d17089200
parenttmtests/tmtimer01: New test (diff)
downloadrtems-e468ba5532232e2ea7bac6b0f5787e0a49008a53.tar.bz2
U-Boot: Flush data cache after bdinfo copy
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/include/u-boot-config.h2
-rw-r--r--c/src/lib/libbsp/shared/src/bsp-uboot-board-info.c19
2 files changed, 7 insertions, 14 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/include/u-boot-config.h b/c/src/lib/libbsp/powerpc/qoriq/include/u-boot-config.h
index 3e6fa90b55..7f9ed73de4 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/include/u-boot-config.h
+++ b/c/src/lib/libbsp/powerpc/qoriq/include/u-boot-config.h
@@ -17,8 +17,6 @@
#include <bspopts.h>
-#define U_BOOT_BOARD_INFO_TEXT_SECTION __attribute__((section(".bsp_start_text")))
-
#define U_BOOT_BOARD_INFO_DATA_SECTION __attribute__((section(".bsp_start_data")))
#define CONFIG_E500
diff --git a/c/src/lib/libbsp/shared/src/bsp-uboot-board-info.c b/c/src/lib/libbsp/shared/src/bsp-uboot-board-info.c
index 10a99c24c3..e68060a3ac 100644
--- a/c/src/lib/libbsp/shared/src/bsp-uboot-board-info.c
+++ b/c/src/lib/libbsp/shared/src/bsp-uboot-board-info.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2014 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2010, 2016 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
@@ -14,9 +14,8 @@
#include <bsp/u-boot.h>
-#ifndef U_BOOT_BOARD_INFO_TEXT_SECTION
-#define U_BOOT_BOARD_INFO_TEXT_SECTION
-#endif
+#include <string.h>
+#include <rtems.h>
#ifndef U_BOOT_BOARD_INFO_DATA_SECTION
#define U_BOOT_BOARD_INFO_DATA_SECTION
@@ -24,14 +23,10 @@
U_BOOT_BOARD_INFO_DATA_SECTION bd_t bsp_uboot_board_info;
-U_BOOT_BOARD_INFO_TEXT_SECTION void bsp_uboot_copy_board_info(const bd_t *src)
+void bsp_uboot_copy_board_info(const bd_t *src)
{
- const int *s = (const int *) src;
- int *d = (int *) &bsp_uboot_board_info;
- int i = 0;
- int n = sizeof(*src) / sizeof(int);
+ bd_t *dst = &bsp_uboot_board_info;
- for (i = 0; i < n; ++i) {
- d [i] = s [i];
- }
+ dst = memcpy(dst, src, sizeof(*dst));
+ rtems_cache_flush_multiple_data_lines(dst, sizeof(*dst));
}