]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
microblaze: Remove _start symbol handling at U-Boot start
authorMichal Simek <michal.simek@amd.com>
Fri, 24 Jun 2022 12:15:00 +0000 (14:15 +0200)
committerMichal Simek <michal.simek@amd.com>
Fri, 24 Jun 2022 12:15:00 +0000 (14:15 +0200)
Right now U-Boot runs all the time from the same address where it is loaded
but going to full relocation code starting address doesn't need to be fixed
and can be simply discovered from reading PC register. That's why use r20
to get PC address and subtract offset from the beginning to get starting
address.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/044b727c33dfbe662f68512d0da0775a4805f360.1655299267.git.michal.simek@amd.com
arch/microblaze/cpu/start.S

index c3d925c1d1511f12288066f110ce8df1d7fd2669..db3998f545051e1b7ecd149bc0786a18cc36942a 100644 (file)
        .global _start
 _start:
        mts     rmsr, r0        /* disable cache */
+       mfs     r20, rpc
+       addi    r20, r20, -4
 
        mts     rslr, r0
-       addi    r8, r0, _start
-       mts     rshr, r8
+       mts     rshr, r20
 
 #if defined(CONFIG_SPL_BUILD)
        addi    r1, r0, CONFIG_SPL_STACK_ADDR
 #else
-       add     r1, r0, r8
+       add     r1, r0, r20
 #endif
 
        addi    r1, r1, -4      /* Decrement SP to top of memory */