I'm not exactly sure where Gentoo sits with Raspberry Pi compatibility, but best of luck!

If you take a look at ArchLinux and, more specifically Debian's documentation on using `aarch64`/`amd64`, you may find some hints.

[Michael Stapelberg](https://people.debian.org/~stapelberg/) has some notes, and there is the [Debian Raspberry Pi 3 Wiki](https://wiki.debian.org/RaspberryPi3) that helps explain some of the new architecture, including how to get WiFi working.  The current image comes with WiFi, so you'll have to look at instructions for images prior to the 2018 one.

I know that you're on Gentoo, but I'm curious if you could follow a similar set of instructions, which is to compile this module, and provide a missing `.txt` file ([`/lib/firmware/brcm/brcmfmac43430-sdio.txt`](https://paste.ubuntu.com/p/XZ7BvbtbBT/)).

The steps are [documented here](https://quantum2.xyz/2017/10/27/installing-debian-arm64-on-raspberry-pi-3-with-wifi/) but consist of:

1. Compiling your kernel with the Broadcom drivers
1. Providing the missing `.txt` file: `/lib/firmware/brcm/brcmfmac43430-sdio.txt`
    * [This paste](https://paste.ubuntu.com/p/XZ7BvbtbBT/) is the current version as of June, 2018.
    * This is sourced from Raspbian `firmware-brcm80211*.deb`, so grabbing it from [here](https://archive.raspberrypi.org/debian/pool/main/f/firmware-nonfree/) is a 'better' way of getting the latest version.

You mention that you've had it working previously.  I'm curious if the `.txt` is missing when you re-compile, incompatible, or if you've compared the files generated by you build to the original.

------

As for your question around UART, yes, UART, WiFi and Bluetooth are all tied together.  [This issue](https://github.com/raspberrypi/linux/issues/1402) discusses some of the limitations and user findings.  On my Raspberry Pi that I use GPIO UART, I have disabled Bluetooth and have added `core_freq=250` in `/boot/config.txt`.  You'll want to read [more information and updates](https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=138223) about this, which will point you at the [`.dts`](https://github.com/raspberrypi/linux/blob/rpi-4.1.y/arch/arm/boot/dts/overlays/README) documentation.

I'm not entirely sure what you're doing, but [notro's fbtft_tools](https://github.com/notro/fbtft_tools) is a great example of a module that was brought into the mainline Raspberry Pi kernel, showing how to build a new module and how things surrounding that work.