Currently dwc(4) supports an Ethernet MAC address from hardware (usually set by the boot loader), or by generating a random one with a "BSD" prefix for the OUI.
Change the logic to first try a HW set address, or if that fails check the FDT. If neither works return an error and after if_alloc() in the attach function use ether_gen_addr() to create a (random) Ethernet MAC under the FreeBSD OUI. If we do support getting a cpuid and setting the host uuid based on that the generated MAC should also be stable. This seems to be a better solution than using a pseudo-random on a locally administered OUI.
Setting the "local-mac-address" from loader can be done, e.g., on a NanoPC-T4 with:
fdt mkprop /ethernet@fe300000/local-mac-address [ 0x58 0x9c 0xfc 0xde 0xc0 0xde ]