1*5accce5bSRoberto Vargas/* 2*5accce5bSRoberto Vargas * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. 3*5accce5bSRoberto Vargas * 4*5accce5bSRoberto Vargas * SPDX-License-Identifier: BSD-3-Clause 5*5accce5bSRoberto Vargas */ 6*5accce5bSRoberto Vargas 7*5accce5bSRoberto Vargas .globl rom_lib_init 8*5accce5bSRoberto Vargas .extern __DATA_RAM_START__, __DATA_ROM_START__, __DATA_SIZE__ 9*5accce5bSRoberto Vargas .extern memset, memcpy 10*5accce5bSRoberto Vargas 11*5accce5bSRoberto Vargasrom_lib_init: 12*5accce5bSRoberto Vargas cmp w0, #1 13*5accce5bSRoberto Vargas mov w0, #0 14*5accce5bSRoberto Vargas b.le 1f 15*5accce5bSRoberto Vargas ret 16*5accce5bSRoberto Vargas 17*5accce5bSRoberto Vargas1: stp x29, x30, [sp, #-16]! 18*5accce5bSRoberto Vargas adrp x0, __DATA_RAM_START__ 19*5accce5bSRoberto Vargas ldr x1,= __DATA_ROM_START__ 20*5accce5bSRoberto Vargas ldr x2, =__DATA_SIZE__ 21*5accce5bSRoberto Vargas bl memcpy 22*5accce5bSRoberto Vargas 23*5accce5bSRoberto Vargas ldr x0, =__BSS_START__ 24*5accce5bSRoberto Vargas mov x1, #0 25*5accce5bSRoberto Vargas ldr x2, =__BSS_SIZE__ 26*5accce5bSRoberto Vargas bl memset 27*5accce5bSRoberto Vargas ldp x29, x30, [sp], #16 28*5accce5bSRoberto Vargas 29*5accce5bSRoberto Vargas mov w0, #1 30*5accce5bSRoberto Vargas ret 31