summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2017-03-31 08:40:38 -0600
committerTom Rini <trini@konsulko.com>2017-04-05 16:36:57 -0400
commite47b2d674f0acd137412535647cb3072bf11dbb0 (patch)
tree9ebdb5b4ccc2805279bdbdb8971d1c55dcc2c0af
parent96d4b75c0d7f1bbbbde19e6225b09b1f7e7b60fe (diff)
board_f: Make relocation functions generic
This header file is used by three archs. It could be used by all of them since relocation is a common function. Move it into a generic file. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--arch/arc/include/asm/relocate.h16
-rw-r--r--arch/x86/include/asm/relocate.h17
-rw-r--r--arch/x86/lib/relocate.c2
-rw-r--r--arch/xtensa/include/asm/relocate.h14
-rw-r--r--arch/xtensa/lib/relocate.c2
-rw-r--r--common/board_f.c4
-rw-r--r--include/relocate.h39
7 files changed, 42 insertions, 52 deletions
diff --git a/arch/arc/include/asm/relocate.h b/arch/arc/include/asm/relocate.h
deleted file mode 100644
index 4c5f923416..0000000000
--- a/arch/arc/include/asm/relocate.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Copyright (C) 2013-2015 Synopsys, Inc. All rights reserved.
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
-
-#ifndef _ASM_ARC_RELOCATE_H
-#define _ASM_ARC_RELOCATE_H
-
-#include <common.h>
-
-int copy_uboot_to_ram(void);
-int clear_bss(void);
-int do_elf_reloc_fixups(void);
-
-#endif /* _ASM_ARC_RELOCATE_H */
diff --git a/arch/x86/include/asm/relocate.h b/arch/x86/include/asm/relocate.h
deleted file mode 100644
index cff3abc23a..0000000000
--- a/arch/x86/include/asm/relocate.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * (C) Copyright 2011
- * Graeme Russ, <graeme.russ@gmail.com>
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
-
-#ifndef _RELOCATE_H_
-#define _RELOCATE_H_
-
-#include <common.h>
-
-int copy_uboot_to_ram(void);
-int clear_bss(void);
-int do_elf_reloc_fixups(void);
-
-#endif /* !_RELOCATE_H_ */
diff --git a/arch/x86/lib/relocate.c b/arch/x86/lib/relocate.c
index 1da5210d27..114f602f7a 100644
--- a/arch/x86/lib/relocate.c
+++ b/arch/x86/lib/relocate.c
@@ -17,8 +17,8 @@
#include <common.h>
#include <inttypes.h>
+#include <relocate.h>
#include <asm/u-boot-x86.h>
-#include <asm/relocate.h>
#include <asm/sections.h>
#include <elf.h>
diff --git a/arch/xtensa/include/asm/relocate.h b/arch/xtensa/include/asm/relocate.h
deleted file mode 100644
index 9c4ce23988..0000000000
--- a/arch/xtensa/include/asm/relocate.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * Copyright (C) 2016 Cadence Design Systems Inc.
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
-
-#ifndef _ASM_XTENSA_RELOCATE_H
-#define _ASM_XTENSA_RELOCATE_H
-
-#include <common.h>
-
-int clear_bss(void);
-
-#endif /* _ASM_XTENSA_RELOCATE_H */
diff --git a/arch/xtensa/lib/relocate.c b/arch/xtensa/lib/relocate.c
index 3f747ec55a..010c1b035e 100644
--- a/arch/xtensa/lib/relocate.c
+++ b/arch/xtensa/lib/relocate.c
@@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-2.0+
*/
-#include <asm/relocate.h>
+#include <relocate.h>
#include <asm/sections.h>
#include <asm/string.h>
diff --git a/common/board_f.c b/common/board_f.c
index f928c3dc73..bed09e2498 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -39,6 +39,7 @@
#include <os.h>
#include <post.h>
+#include <relocate.h>
#include <spi.h>
#include <status_led.h>
#include <timer.h>
@@ -47,9 +48,6 @@
#include <watchdog.h>
#include <asm/io.h>
#include <asm/sections.h>
-#if defined(CONFIG_X86) || defined(CONFIG_ARC) || defined(CONFIG_XTENSA)
-#include <asm/relocate.h>
-#endif
#include <dm/root.h>
#include <linux/errno.h>
diff --git a/include/relocate.h b/include/relocate.h
new file mode 100644
index 0000000000..0d4b27aa2b
--- /dev/null
+++ b/include/relocate.h
@@ -0,0 +1,39 @@
+/*
+ * (C) Copyright 2011
+ * Graeme Russ, <graeme.russ@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef _RELOCATE_H_
+#define _RELOCATE_H_
+
+#include <common.h>
+
+/**
+ * copy_uboot_to_ram() - Copy U-Boot to its new relocated position
+ *
+ * @return 0 if OK, -ve on error
+ */
+int copy_uboot_to_ram(void);
+
+/**
+ * clear_bss() - Clear the BSS (Blocked Start by Symbol) segment
+ *
+ * This clears the memory used by global variables
+ *
+ * @return 0 if OK, -ve on error
+ */
+int clear_bss(void);
+
+/**
+ * do_elf_reloc_fixups() - Fix up ELF relocations in the relocated code
+ *
+ * This processes the relocation tables to ensure that the code can run in its
+ * new location.
+ *
+ * @return 0 if OK, -ve on error
+ */
+int do_elf_reloc_fixups(void);
+
+#endif /* _RELOCATE_H_ */