diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/external_deps.mk | 4 | ||||
-rw-r--r-- | firmware/fw_base.S | 16 | ||||
-rw-r--r-- | firmware/objects.mk | 7 |
3 files changed, 27 insertions, 0 deletions
diff --git a/firmware/external_deps.mk b/firmware/external_deps.mk index 2b8f9f6..f43ac06 100644 --- a/firmware/external_deps.mk +++ b/firmware/external_deps.mk @@ -7,5 +7,9 @@ # Anup Patel <anup.patel@wdc.com> # +$(platform_build_dir)/firmware/fw_dynamic.o: $(FW_FDT_PATH) +$(platform_build_dir)/firmware/fw_jump.o: $(FW_FDT_PATH) +$(platform_build_dir)/firmware/fw_payload.o: $(FW_FDT_PATH) + $(platform_build_dir)/firmware/fw_payload.o: $(FW_PAYLOAD_PATH_FINAL) $(platform_build_dir)/firmware/fw_payload.o: $(FW_PAYLOAD_FDT_PATH) diff --git a/firmware/fw_base.S b/firmware/fw_base.S index 0271d9a..95197da 100644 --- a/firmware/fw_base.S +++ b/firmware/fw_base.S @@ -182,6 +182,11 @@ _bss_zero: call fw_save_info MOV_5R a0, s0, a1, s1, a2, s2, a3, s3, a4, s4 +#ifdef FW_FDT_PATH + /* Override previous arg1 */ + la a1, fw_fdt_bin +#endif + /* Override previous arg1 */ MOV_3R s0, a0, s1, a1, s2, a2 call fw_prev_arg1 @@ -668,3 +673,14 @@ _reset_regs: csrw CSR_MSCRATCH, 0 ret + +#ifdef FW_FDT_PATH + .section .rodata + .align 4 + .globl fw_fdt_bin +fw_fdt_bin: + .incbin FW_FDT_PATH +#ifdef FW_FDT_PADDING + .fill FW_FDT_PADDING, 1, 0 +#endif +#endif diff --git a/firmware/objects.mk b/firmware/objects.mk index c980362..2eea54c 100644 --- a/firmware/objects.mk +++ b/firmware/objects.mk @@ -17,6 +17,13 @@ ifdef FW_TEXT_START firmware-genflags-y += -DFW_TEXT_START=$(FW_TEXT_START) endif +ifdef FW_FDT_PATH +firmware-genflags-y += -DFW_FDT_PATH=\"$(FW_FDT_PATH)\" +ifdef FW_FDT_PADDING +firmware-genflags-y += -DFW_FDT_PADDING=$(FW_FDT_PADDING) +endif +endif + firmware-bins-$(FW_DYNAMIC) += fw_dynamic.bin firmware-bins-$(FW_JUMP) += fw_jump.bin |