diff options
author | Sachin Gupta <sgupta2m@in.ibm.com> | 2015-07-20 23:28:58 -0500 |
---|---|---|
committer | Amit J. Tendolkar <amit.tendolkar@in.ibm.com> | 2016-02-03 00:12:11 -0600 |
commit | d39b495d089e8bc51e5dfa794cf6fd3d3db9f9ed (patch) | |
tree | ca365bfb28a1c7b373c18e7e5c2f14c44dc7854c /sbe/image/pm_loader.S | |
parent | 309c9ac32ee2e05ea5975b0973f79cd8b22acda2 (diff) | |
download | talos-sbe-d39b495d089e8bc51e5dfa794cf6fd3d3db9f9ed.tar.gz talos-sbe-d39b495d089e8bc51e5dfa794cf6fd3d3db9f9ed.zip |
SEEPREOM/PIBMEM Loader
RTC: 123472
Change-Id: I625ade56cbd56d7c3e7c6510e863351f054408ee
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/19793
Tested-by: Jenkins Server
Reviewed-by: Amit J. Tendolkar <amit.tendolkar@in.ibm.com>
Diffstat (limited to 'sbe/image/pm_loader.S')
-rw-r--r-- | sbe/image/pm_loader.S | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/sbe/image/pm_loader.S b/sbe/image/pm_loader.S new file mode 100644 index 00000000..84c64020 --- /dev/null +++ b/sbe/image/pm_loader.S @@ -0,0 +1,57 @@ + + .nolist +#include "pk.h" +#include "sbe_link.H" + .list + +### **************************************************************************** +### .loader_text - This section contains pm loader code +### @TODO via RTC 136315 +### It also contains vector code. We can remove vector code +### once OTPROM support for simics is in. +### **************************************************************************** + + .section .loader_text, "ax", @progbits + + .global __vectors + +__vectors: + + ############################################################ + # 0x0040 : System Reset + ############################################################ + .global __system_reset + .org __vectors + 0x0040 +__system_reset: + b __pmLoader + + +__pmLoader: + _liw %r3, SBE_LOADER_BASE_SECTION # Base Loader Section Location + _liw %r4, SBE_LOADER_BASE_ORIGIN # dest + _liw %r9, SBE_SEEPROM_BASE_ORIGIN + lwz r5, 4(r3) #size of image in bytes + li r6, 3 + srw r5, r5, r6 # Number of double word transfers + mtctr r5 # set the counter for loop + lwz r8, 0(r3) # offset of baseloader section + adde r8, r8, r9 # add base address to offset to get absolute address + +copy_loop: + lvd d28, 0(r8) + stvd d28, 0(r4) + addi r8, r8, 8 + addi r4, r4, 8 + bdnz copy_loop + + ############################################################ + # SBE entry function is 4 byte number in image header + ############################################################ + + _liw %r3, SBE_SEEPROM_BASE_ORIGIN + SBE_LOADER_ENTRY_HEADER_OFFSET + lwz r6, 0(r3) + mtlr r6 + blr + + .epilogue __pmLoader + |