On 10 Jun 2023-06-10 Vagrant Cascadian wrote:
> On 2023-06-10, Bernhard wrote:
> > I'm interested in the Router BANANA Pi R3 from Sinovoip:
> > https://wiki.banana-pi.org/Banana_Pi_BPI-R3
> >
> > This Banana Pi has MediaTek MT7986 (Filogic 830).
>
> I cannot say what it will take to support it in debian for sure...
> ...
> The other main thing is to check what support is needed in the linux
> kernel...
The good news is that it appears to be supported in the upstream kernel.
The bad new starts with this:
$ grep -r MEDIATEK debian/config/
debian/config/config:CONFIG_WLAN_VENDOR_MEDIATEK=y
debian/config/arm64/config.cloud-arm64:# CONFIG_ARCH_MEDIATEK is not set
Which is not relevant for the Banana Pi BPI-R3 ...
$ grep MEDIATEK /boot/config-6.1.0-11-arm64
# CONFIG_ARCH_MEDIATEK is not set
# CONFIG_MEDIATEK_GE_PHY is not set
CONFIG_WLAN_VENDOR_MEDIATEK=y
... "CONFIG_ARCH_MEDIATEK is not set" means that there (essentially) isn't
*anything* wrt MEDIATEK enabled in the Debian kernel ... (same for 6.5 btw)
I have a script which helps with identifying which kernel modules would be
needed based on the "compatible" strings in the dts file and running it on the
mt7986a-bananapi-bpi-r3.dts revealed 1 missing component ... but a rather
important one, which AFAICT is related to ARCH_MEDIATEK not being enabled.
The dts file also includes a .dtsi file and scanning that file revealed mostly
missing "Debian config settings:" lines and thus also any enabled modules in
the Debian kernel.
My script is very crude and will only give a starting point which I then would
enhance by filling in the missing parts. But I'm not motivated enough to do
that for a board which I don't have (as it's quite a bit of work) ;-)
Hope it still helps.compatible: "arm,armv8-timer"
source file: drivers/clocksource/arm_arch_timer.c
drivers/clocksource/Kconfig: ARM_ARCH_TIMER (bool)
compatible: "arm,cortex-a53"
compatible: "arm,gic-v3"
compatible: "arm,psci-0.2"
source file: drivers/firmware/psci/psci.c
drivers/firmware/psci/Kconfig: ARM_PSCI_FW (bool)
compatible: "fixed-clock"
source file: drivers/clk/clk-fixed-rate.c
drivers/clk/Kconfig: COMMON_CLK (bool)
Debian config settings:
debian/config/arm64/config:CONFIG_COMMON_CLK=y
compatible: "inside-secure,safexcel-eip97"
source file: drivers/crypto/inside-secure/safexcel.c
drivers/crypto/Kconfig: CRYPTO_DEV_SAFEXCEL (tristate)
Debian config settings:
debian/config/arm64/config:CONFIG_CRYPTO_DEV_SAFEXCEL=m
compatible: "mediatek,mt7986a"
compatible: "mediatek,mt7986a-pinctrl"
source file: drivers/pinctrl/mediatek/pinctrl-mt7986.c
drivers/pinctrl/mediatek/Kconfig: PINCTRL_MT7986 (bool)
compatible: "mediatek,mt7986-apmixedsys"
source file: drivers/clk/mediatek/clk-mt7986-apmixed.c
drivers/clk/mediatek/Kconfig: COMMON_CLK_MT7986 (tristate)
compatible: "mediatek,mt7986-auxadc"
compatible: "mediatek,mt7986-efuse"
compatible: "mediatek,mt7986-eth"
source file: drivers/net/ethernet/mediatek/mtk_eth_soc.c
compatible: "mediatek,mt7986-ethsys"
source file: drivers/clk/mediatek/clk-mt7986-eth.c
drivers/clk/mediatek/Kconfig: COMMON_CLK_MT7986_ETHSYS (tristate)
compatible: "mediatek,mt7986-i2c"
source file: drivers/i2c/busses/i2c-mt65xx.c
drivers/i2c/busses/Kconfig: I2C_MT65XX (tristate)
compatible: "mediatek,mt7986-infracfg"
source file: drivers/clk/mediatek/clk-mt7986-infracfg.c
drivers/clk/mediatek/Kconfig: COMMON_CLK_MT7986 (tristate)
compatible: "mediatek,mt7986-mmc"
source file: drivers/mmc/host/mtk-sd.c
drivers/mmc/host/Kconfig: MMC_MTK (tristate)
Debian config settings:
debian/config/config:# CONFIG_MMC_MTK is not set
compatible: "mediatek,mt7986-pcie"
compatible: "mediatek,mt7986-pwm"
source file: drivers/pwm/pwm-mediatek.c
drivers/pwm/Kconfig: PWM_MEDIATEK (tristate)
compatible: "mediatek,mt7986-rng"
source file: drivers/char/hw_random/mtk-rng.c
drivers/char/hw_random/Kconfig: HW_RANDOM_MTK (tristate)
compatible: "mediatek,mt7986-sgmiisys_0"
source file: drivers/clk/mediatek/clk-mt7986-eth.c
drivers/clk/mediatek/Kconfig: COMMON_CLK_MT7986_ETHSYS (tristate)
compatible: "mediatek,mt7986-sgmiisys_1"
source file: drivers/clk/mediatek/clk-mt7986-eth.c
drivers/clk/mediatek/Kconfig: COMMON_CLK_MT7986_ETHSYS (tristate)
compatible: "mediatek,mt7986-spi-ipm"
compatible: "mediatek,mt7986-thermal"
source file: drivers/thermal/mediatek/auxadc_thermal.c
drivers/thermal/mediatek/Kconfig: MTK_SOC_THERMAL (tristate)
compatible: "mediatek,mt7986-topckgen"
source file: drivers/clk/mediatek/clk-mt7986-topckgen.c
drivers/clk/mediatek/Kconfig: COMMON_CLK_MT7986 (tristate)
compatible: "mediatek,mt7986-tphy"
compatible: "mediatek,mt7986-uart"
compatible: "mediatek,mt7986-wdt"
source file: drivers/watchdog/mtk_wdt.c
drivers/watchdog/Kconfig: MEDIATEK_WATCHDOG (tristate)
compatible: "mediatek,mt7986-wed"
compatible: "mediatek,mt7986-wed-pcie"
compatible: "mediatek,mt7986-wmac"
source file: drivers/net/wireless/mediatek/mt76/mt7915/soc.c
drivers/net/wireless/mediatek/mt76/mt7915/Kconfig: M