1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * K3: Common Architecture initialization 4 * 5 * Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/ 6 * Lokesh Vutla <lokeshvutla@ti.com> 7 */ 8 9 #include <common.h> 10 #include <spl.h> 11 #include "common.h" 12 #include <dm.h> 13 #include <remoteproc.h> 14 15 #ifdef CONFIG_SYS_K3_SPL_ATF 16 void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image) 17 { 18 int ret; 19 20 /* 21 * It is assumed that remoteproc device 1 is the corresponding 22 * Cortex-A core which runs ATF. Make sure DT reflects the same. 23 */ 24 ret = rproc_dev_init(1); 25 if (ret) 26 panic("%s: ATF failed to initialize on rproc (%d)\n", __func__, 27 ret); 28 29 ret = rproc_load(1, spl_image->entry_point, 0x200); 30 if (ret) 31 panic("%s: ATF failed to load on rproc (%d)\n", __func__, ret); 32 33 /* Add an extra newline to differentiate the ATF logs from SPL */ 34 printf("Starting ATF on ARM64 core...\n\n"); 35 36 ret = rproc_start(1); 37 if (ret) 38 panic("%s: ATF failed to start on rproc (%d)\n", __func__, ret); 39 40 debug("ATF started. Waiting indefinitely...\n"); 41 while (1) 42 asm volatile("wfe"); 43 } 44 #endif 45