xref: /rk3399_rockchip-uboot/include/relocate.h (revision e47b2d674f0acd137412535647cb3072bf11dbb0)
1*e47b2d67SSimon Glass /*
2*e47b2d67SSimon Glass  * (C) Copyright 2011
3*e47b2d67SSimon Glass  * Graeme Russ, <graeme.russ@gmail.com>
4*e47b2d67SSimon Glass  *
5*e47b2d67SSimon Glass  * SPDX-License-Identifier:	GPL-2.0+
6*e47b2d67SSimon Glass  */
7*e47b2d67SSimon Glass 
8*e47b2d67SSimon Glass #ifndef _RELOCATE_H_
9*e47b2d67SSimon Glass #define _RELOCATE_H_
10*e47b2d67SSimon Glass 
11*e47b2d67SSimon Glass #include <common.h>
12*e47b2d67SSimon Glass 
13*e47b2d67SSimon Glass /**
14*e47b2d67SSimon Glass  * copy_uboot_to_ram() - Copy U-Boot to its new relocated position
15*e47b2d67SSimon Glass  *
16*e47b2d67SSimon Glass  * @return 0 if OK, -ve on error
17*e47b2d67SSimon Glass  */
18*e47b2d67SSimon Glass int copy_uboot_to_ram(void);
19*e47b2d67SSimon Glass 
20*e47b2d67SSimon Glass /**
21*e47b2d67SSimon Glass  * clear_bss() - Clear the BSS (Blocked Start by Symbol) segment
22*e47b2d67SSimon Glass  *
23*e47b2d67SSimon Glass  * This clears the memory used by global variables
24*e47b2d67SSimon Glass  *
25*e47b2d67SSimon Glass  * @return 0 if OK, -ve on error
26*e47b2d67SSimon Glass  */
27*e47b2d67SSimon Glass int clear_bss(void);
28*e47b2d67SSimon Glass 
29*e47b2d67SSimon Glass /**
30*e47b2d67SSimon Glass  * do_elf_reloc_fixups() - Fix up ELF relocations in the relocated code
31*e47b2d67SSimon Glass  *
32*e47b2d67SSimon Glass  * This processes the relocation tables to ensure that the code can run in its
33*e47b2d67SSimon Glass  * new location.
34*e47b2d67SSimon Glass  *
35*e47b2d67SSimon Glass  * @return 0 if OK, -ve on error
36*e47b2d67SSimon Glass  */
37*e47b2d67SSimon Glass int do_elf_reloc_fixups(void);
38*e47b2d67SSimon Glass 
39*e47b2d67SSimon Glass #endif	/* _RELOCATE_H_ */
40