/* * Copyright (c) 2018 Western Digital Corporation or its affiliates. * * Authors: * Anup Patel * * SPDX-License-Identifier: BSD-2-Clause */ #include "fw_base.S" .align 3 .section .entry, "ax", %progbits .global fw_prev_arg1 fw_prev_arg1: /* We return previous arg1 in 'a0' */ #ifdef FW_PAYLOAD_FDT_PATH la a0, fdt_bin #else add a0, zero, zero #endif ret .align 3 .section .entry, "ax", %progbits .global fw_next_arg1 fw_next_arg1: /* We return next arg1 in 'a0' */ #ifdef FW_PAYLOAD_FDT_ADDR li a0, FW_PAYLOAD_FDT_ADDR #else add a0, zero, zero #endif ret .align 3 .section .entry, "ax", %progbits .global fw_next_addr fw_next_addr: /* We return next address in 'a0' */ la a0, payload_bin ret #define str(s) #s #define stringify(s) str(s) #ifdef FW_PAYLOAD_FDT_PATH .align 3 .section .text, "ax", %progbits .globl fdt_bin fdt_bin: .incbin stringify(FW_PAYLOAD_FDT_PATH) #endif .section .payload, "ax", %progbits .globl payload_bin payload_bin: #ifndef FW_PAYLOAD_PATH wfi j payload_bin #else .incbin stringify(FW_PAYLOAD_PATH) #endif