diff --git a/firmware/fw_payload.S b/firmware/fw_payload.S index c53a3bb0..3c8433ea 100644 --- a/firmware/fw_payload.S +++ b/firmware/fw_payload.S @@ -46,6 +46,10 @@ fw_save_info: fw_next_arg1: #ifdef FW_PAYLOAD_FDT_ADDR li a0, FW_PAYLOAD_FDT_ADDR +#elif defined(FW_PAYLOAD_FDT_OFFSET) + lla a0, _fw_start + li a1, FW_PAYLOAD_FDT_OFFSET + add a0, a0, a1 #else add a0, a1, zero #endif diff --git a/firmware/objects.mk b/firmware/objects.mk index fef090a4..3ae0a28f 100644 --- a/firmware/objects.mk +++ b/firmware/objects.mk @@ -65,6 +65,9 @@ ifdef FW_PAYLOAD_ALIGN firmware-genflags-$(FW_PAYLOAD) += -DFW_PAYLOAD_ALIGN=$(FW_PAYLOAD_ALIGN) endif +ifdef FW_PAYLOAD_FDT_OFFSET +firmware-genflags-$(FW_PAYLOAD) += -DFW_PAYLOAD_FDT_OFFSET=$(FW_PAYLOAD_FDT_OFFSET) +endif ifdef FW_PAYLOAD_FDT_ADDR firmware-genflags-$(FW_PAYLOAD) += -DFW_PAYLOAD_FDT_ADDR=$(FW_PAYLOAD_FDT_ADDR) endif