This weekend I went over the current Linux BPI-R3 Device Tree file in the linux master branch in order to fix some issues I encountered with the Ubuntu 6.8 kernel.
I compared everything to the BPI-R3 schematics as well as the MT7986 datasheet and these are the issues I found and fixed in my copy so far: - there was no memory block - not used by Linux but I think is used by U-boot - pcie - was missing the pice_wake pin group - though had to remove it again due to: - the two pin groups pcie_clk and pcie_wake conflict with GPIO pins used by the reset and WPS push buttons - the schematic is ambiguous as to how things are wired, it has both the buttons and M.2 connector using the same nets though with some optional 0 Ohm resistors (or jumpers) which makes it hard to know what is actually happening without multimeter probing - removing the two pin groups allows the pcie device to actually be loaded - I need to get a NVMe SSD to test it out - uart0 - missing the pin group - ethernet mdio-bus - used GPIO 5 pin for reset but, this is actually connected instead to a DIP switch for boot device selection - there was no audio device - the drivers only recently been added to kernel - I grabbed the definition from OpenWrt, though the MediaTek SDK though they disagrees on one of the clocks so I need to work out what is correct - there are header pins for connecting audio codec chip via CON1 but I only just ordered such a codec so can't test it properly yet - there was no SNFI device - I grabbed the definition from the MediaTek SDK - there is an empty solder pad for an SNFI chip so I don't think I will be able to test this unless I find someone who has installed such a chip to test - ssusb - missing required voltage regulator definitions I need to work out how to submit these fixes to the Linux device tree maintainers. Diederik has also given me a pre-built Debian kernel to test which I will do next.