diff options
author | Tom Rini <trini@konsulko.com> | 2019-01-01 09:56:41 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-01-01 10:01:00 -0500 |
commit | 522e035441ca04d99de2fc13b614ad896691e9c9 (patch) | |
tree | 875c0923d24447550db43f6f1b767dea82dccb06 /arch/arm/mach-imx/imx8m/lowlevel_init.S | |
parent | 08337cd64832ed7f8147da75013510b92bbcd188 (diff) | |
parent | 57d2beb91d705bccdfee5e9e5fd267f5e363a100 (diff) |
Merge tag 'u-boot-imx-20190101' of git://www.denx.de/git/u-boot-imx
imx for 2019.01
- introduce support for i.MX8M
- fix size limit for Vhybrid / pico boards
- several board fixes
- w1 driver for MX2x / MX5x
Diffstat (limited to 'arch/arm/mach-imx/imx8m/lowlevel_init.S')
-rw-r--r-- | arch/arm/mach-imx/imx8m/lowlevel_init.S | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/imx8m/lowlevel_init.S b/arch/arm/mach-imx/imx8m/lowlevel_init.S new file mode 100644 index 0000000000..a4c6466ca9 --- /dev/null +++ b/arch/arm/mach-imx/imx8m/lowlevel_init.S @@ -0,0 +1,62 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2017 NXP + */ + +#include <config.h> + +.align 8 +.global rom_pointer +rom_pointer: + .space 256 + +/* + * Routine: save_boot_params (called after reset from start.S) + */ + +.global save_boot_params +save_boot_params: + /* The firmware provided ATAG/FDT address can be found in r2/x0 */ + adr x0, rom_pointer + stp x1, x2, [x0], #16 + stp x3, x4, [x0], #16 + stp x5, x6, [x0], #16 + stp x7, x8, [x0], #16 + stp x9, x10, [x0], #16 + stp x11, x12, [x0], #16 + stp x13, x14, [x0], #16 + stp x15, x16, [x0], #16 + stp x17, x18, [x0], #16 + stp x19, x20, [x0], #16 + stp x21, x22, [x0], #16 + stp x23, x24, [x0], #16 + stp x25, x26, [x0], #16 + stp x27, x28, [x0], #16 + stp x29, x30, [x0], #16 + mov x30, sp + str x30, [x0], #8 + + /* Returns */ + b save_boot_params_ret + +.global restore_boot_params +restore_boot_params: + adr x0, rom_pointer + ldp x1, x2, [x0], #16 + ldp x3, x4, [x0], #16 + ldp x5, x6, [x0], #16 + ldp x7, x8, [x0], #16 + ldp x9, x10, [x0], #16 + ldp x11, x12, [x0], #16 + ldp x13, x14, [x0], #16 + ldp x15, x16, [x0], #16 + ldp x17, x18, [x0], #16 + ldp x19, x20, [x0], #16 + ldp x21, x22, [x0], #16 + ldp x23, x24, [x0], #16 + ldp x25, x26, [x0], #16 + ldp x27, x28, [x0], #16 + ldp x29, x30, [x0], #16 + ldr x0, [x0] + mov sp, x0 + ret |