aboutsummaryrefslogtreecommitdiff
path: root/blob/fw_payload.S
diff options
context:
space:
mode:
Diffstat (limited to 'blob/fw_payload.S')
-rw-r--r--blob/fw_payload.S25
1 files changed, 22 insertions, 3 deletions
diff --git a/blob/fw_payload.S b/blob/fw_payload.S
index c601529..b6f3cb9 100644
--- a/blob/fw_payload.S
+++ b/blob/fw_payload.S
@@ -11,11 +11,22 @@
.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 FDT destination address in 'a0' */
+ /* We return next arg1 in 'a0' */
#ifdef FW_PAYLOAD_FDT_ADDR
- /* a0 = destination FDT start address */
li a0, FW_PAYLOAD_FDT_ADDR
#else
add a0, zero, zero
@@ -33,8 +44,16 @@ fw_next_addr:
#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
+ .globl payload_bin
payload_bin:
#ifndef FW_PAYLOAD_PATH
wfi