Ah, sorry, I was building for RK3588 – got confused about what’s building where.
Anyway, the issue is that the INCBIN macro creates sections without indicating their attributes, and .incbin does not provide enough information about what the binary data is to
allow it to infer them. It’s generally reasonable to assume that the data is SHF_ALLOC, which I guess is what LD does, but evidently not LLD.
The fix is quite simple:
diff --git a/plat/rockchip/rk3399/drivers/pmu/pmu_fw.S b/plat/rockchip/rk3399/drivers/pmu/pmu_fw.S
index 26f331317..74f569402 100644
--- a/plat/rockchip/rk3399/drivers/pmu/pmu_fw.S
+++ b/plat/rockchip/rk3399/drivers/pmu/pmu_fw.S
@@ -6,7 +6,7 @@
/* convoluted way to make sure that the define is pasted just the right way */
.macro INCBIN file sym sec
- .section \sec
+ .section \sec, "a"
.global \sym
.type \sym, @object
.align 4