On Mon, 4 Dec 2023 at 14:56, Kalle Valo <kvalo@xxxxxxxxxx> wrote: > > Hi Dmitry, > > Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> writes: > > > I wanted to ask your opinion regarding one of the issues we stumbled > > upon on the Qualcomm RB1 and RB2 platforms. These platforms use ath10k > > snoc (WCN3990) WiFi "card". We noticed the following messages being > > spawned on the console, which I traced it to the > > ATH10K_FW_FEATURE_SINGLE_CHAN_INFO_PER_CHANNEL feature: > > > > ath10k_snoc c800000.wifi: chan info: invalid frequency 0 (idx 41 out of bounds) > > > > As a reminder, on this platform the wlan firmware and firmware-N.bin > > files come separately. > > The wlanmdsp.mbn is downloaded by the onboard modem DSP via the > > tqftpserv request (which is served from the board-specific folder > > qcom/qcm2210). The firmware-N.bin file is loaded by the WiFi driver > > itself from the generic folder, ath10k/WCN3990/hw1.0. Current > > firmware-5.bin file was provided with the sdm845's wlanmdsp.mbn, which > > is older than qcm2210/qrb4210's wlanmdsp.mbn. > > > > I'm looking for suggestions on how to make ath10k driver load > > firmware-N.bin file which corresponds to the board-specific > > wlanmdsp.mbn. > > We have had similar discussions in the past but it didn't go very far. > It would be so nice if you could finally fix this :) At one point we > even had a discussion that we might need something similar for ath11k > but it didn't go anywhere. > > > In particular I'd like to hear your opinion on the following proposal: > > > > Add the optional property to the board DT, that specifies: > > firmware-name = "path/to/wlanmdsp.mbn". The property, if present, > > will be used as an override for the firmware directory. So, while the > > ath10k driver will not load wlanmdsp.mbn on its own, it will still > > look for the firmware-N files in the specified directory. > > Back in the day I was thinking something like below, please let me know > what you think. > > So the normal firmware path for WCN3990 is: > > ath10k/WCN3990/hw1.0/ > > My idea was that if we could extend it for different "platforms" (not > sure what's the proper term for this) by having platform specific > directories: > > ath10k/WCN3990/hw1.0-platform/ > > (Replace "platform" with a unique name for the platform, for example > "acme-kv7" for a product from Acme with model name kv7.) > > Then DT could inform ath10k about this "platform" string and ath10k > would then download boath firmware-N.bin and board-2.bin from the > platform specific directory. > > And even cleaner if we could have the *.mbn firmware files in the same > directory, even if ath10k doesn't access them directly. We can, and a symlink from qcom/SoC/.../dir to that subdir. So, for example, for Pixel-3, using your schema we will have: ath10k/WCN3990/hw1.0-blueline/wlanmdsp.mbn ath10k/WCN3990/hw1.0-blueline/firmware-5.bin ath10k/WCN3990/hw1.0-blueline/board-2.bin qcom/sdm845/Google/blueline/wlanmdsp.mbn -> ../../../../ath10k/WCN3990/hw1.0-blueline/wlanmdsp.mbn This sounds mostly fine to me. My only suggestions is to change it as following: ath10k/WCN3990/hw1.0/board-2.bin ath10k/WCN3990/hw1.0/blueline/wlanmdsp.mbn ath10k/WCN3990/hw1.0/blueline/firmware-5.bin ath10k/WCN3990/hw1.0/blueline/board-2.bin qcom/sdm845/Google/blueline/wlanmdsp.mbn -> ../../../../ath10k/WCN3990/hw1.0/blueline/wlanmdsp.mbn -- With best wishes Dmitry