keep in mind, that what EBBR specifies or any other BBR from ARM and what uboot on pinephone (or uboot in general) does - are very different things. in short, there is no ACPI for any Allwinner/Amlogic/Rockchip SoCs yet. so, despite ACPI is waay better, than FDT, you can't have it for your target. Or, you can create it on your own.
I wanted to consider such a possibiilty, but, admittedly, I haven't reached yet to that point, that I can boast both deep ACPI knowledge and having Allwinner's SoCs full documentation, full enough for creating ACPI tables for Allwinner - I just can't say yet if it's possible to create your own set of ACPI tables for their chips yet. If it is, I'd go with this approach, because, frankly, FDT is a very linuxism contaminated clusterf&ck.
and yeah, FDT is passed through the system table, as Octocontrabass said. it's when you use uboot's UEFI. you tell uboot - here is my .dtb (via script or manually in its CLI) and it passes it to your loader. so, you need to write a script for uboot, that will load a .dtb file, preprocess it via uboot's specific commands, then load your UEFI OSL and then finally use bootefi command for taking control over. FDT will be specified in the system table and you can ensure it is really FDT by looking at the appropriate GUID set by UEFI, it's all specified in the UEFI spec.
the script would be something like this:
Code:
fdt_addr_r 0x43000000
kernel_addr_r 0x42000000
load mmc 0:1 0x43000000 /boot/dtb/sun8i-r40-bananapi-m2-ultra.dtb
fdt addr 0x43000000
fdt resize
fdt set /chosen bootargs "your kernel flags, if any. would be stuffed into this special DT node"
fatload mmc 1:1 0x42000000 <path/to/your/osl.efi>
bootefi 0x42000000 - 0x43000000
it's an example, but be sure to check "bootefi" command parameters, I forgot the whole set,
because I only pass the loaded .efi, no FDT yet.
passing a .dtb through the specified register is a linux specific behavior, as described in the linux documentation (implemented via uboot's "booti" command), it's not relevant to UEFI.