Add various symbols so that this feature works as intended. This allows
xPL to copy the relocating-jump code up to the top of memory, then use
it to decompress and start the next phase.

Signed-off-by: Simon Glass <s...@chromium.org>
---

 arch/arm/mach-rockchip/u-boot-tpl-v8.lds | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm/mach-rockchip/u-boot-tpl-v8.lds 
b/arch/arm/mach-rockchip/u-boot-tpl-v8.lds
index 958a1b70aef..842bd4eb07f 100644
--- a/arch/arm/mach-rockchip/u-boot-tpl-v8.lds
+++ b/arch/arm/mach-rockchip/u-boot-tpl-v8.lds
@@ -25,10 +25,21 @@ SECTIONS
        __image_copy_start = ADDR(.text);
        .text : {
                . = ALIGN(8);
+               __image_copy_start = .;
                CPUDIR/start.o (.text*)
+
+               /* put relocation code all together */
+               //. = . + 0xc0;
+               _rcode_start = .;
+               *(.text.rcode)
+               *(.text.rdata)
+               _rcode_end = .;
+
                *(.text*)
        }
 
+       _rcode_size = _rcode_end - _rcode_start;
+
        .rodata : {
                . = ALIGN(8);
                *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
@@ -48,6 +59,7 @@ SECTIONS
        __image_copy_end = .;
        _end = .;
        _image_binary_end = .;
+       __image_copy_end = .;
 
        .bss ALIGN(8) : {
                __bss_start = .;
@@ -55,6 +67,7 @@ SECTIONS
                . = ALIGN(8);
                __bss_end = .;
        }
+       __bss_size = __bss_end - __bss_start;
 
        /DISCARD/ : { *(.dynsym) }
        /DISCARD/ : { *(.dynstr*) }
-- 
2.43.0

Reply via email to