The background is that many parts of a computer are not “plug-n-play”. The concept of plug-n-play is that the component can self-describe, and then the operating system can decide how to deal with it. Pin functions, routing to peripherals, and just about everything on the carrier board are not plug-n-play. Thus these need manual specification.
I imagine this is similar in FreeBSD, but I’ve never touched it, so what I’m about to say might be off. If this is Linux, then the device tree is used for such specification. I consider it likely FreeBSD uses device trees as well, although it might have a different format and compile tool.
During boot of Linux the device tree is read. As the Linux kernel loads each kernel driver can see the device tree. If a tree node is not of interest to the driver, then it simply ignores the node. However, if the driver recognizes a tree node applies to it, then that information is passed as an argument to the driver as it loads. Information such as a physical device address to find the device at gets used to find and set up the device.
If you use FreeBSD, then your drivers probably listen for device tree content (don’t know for sure), but the Linux node might need to be rewritten for how a FreeBSD driver uses a device tree. The device tree is big, so this is a lot of work.
Also, you’d still need to use all of the boot stage software from the default Jetson install. Instead of loading the Linux kernel you’d need to set it up to hand off instead to the FreeBSD kernel. I don’t know what changes that would involve. However, a complication is that these earlier boot stages have also been set up (often, not always) to read the device tree. Bootloaders could need the tree as well, in which case you might end up with a separate tree for items where FreeBSD differs from what boot stage software uses. The fact that fairly universal bootloader software, e.g., Das U-Boot has built in abilities to use a device tree says there is a strong chance much of the tree structure would be an exact match between Linux and FreeBSD, but I don’t know…never tried to port to FreeBSD.
If the device tree is correct for USB and HDMI, then these should work if the FreeBSD has drivers for those particular devices.