| /* |
| * Copyright (c) 2018, Arm Limited and Contributors. All rights reserved. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| .globl rom_lib_init |
| .extern __DATA_RAM_START__, __DATA_ROM_START__, __DATA_RAM_END__ |
| .extern memset, memcpy |
| |
| rom_lib_init: |
| cmp w0, #1 |
| mov w0, #0 |
| b.le 1f |
| ret |
| |
| 1: stp x29, x30, [sp, #-16]! |
| adrp x0, __DATA_RAM_START__ |
| adrp x1, __DATA_ROM_START__ |
| add x1, x1, :lo12:__DATA_ROM_START__ |
| adrp x2, __DATA_RAM_END__ |
| add x2, x2, :lo12:__DATA_RAM_END__ |
| sub x2, x2, x0 |
| bl memcpy |
| |
| adrp x0,__BSS_START__ |
| add x0, x0, :lo12:__BSS_START__ |
| mov x1, #0 |
| adrp x2, __BSS_END__ |
| add x2, x2, :lo12:__BSS_END__ |
| sub x2, x2, x0 |
| bl memset |
| ldp x29, x30, [sp], #16 |
| |
| mov w0, #1 |
| ret |