[RFC PATCH] brcmfmac: add 43751 SDIO ids and initialization
Marc Gonzalez
marc.w.gonzalez at free.fr
Wed Mar 8 04:47:58 PST 2023
On 08/03/2023 00:15, Franky Lin wrote:
> On Tue, Mar 7, 2023 at 6:40 AM Marc Gonzalez wrote:
>
>> Through the SDIO bus, the WiFi chip reports 0xaae7 (i.e. 43751)
>> hence the /sys/bus/sdio/devices output above.
>>
>> sdio_read_func_cis() -> sdio_read_cis() which sets
>> func->vendor/func->device to 2d0/aae7
>>
>>
>> But when brcmf_chip_recognition() calls ci->ops->read32()
>> i.e. brcmf_sdio_buscore_read32()
>> [ vs brcmf_sdiod_readl() in brcmf_sdio_probe_attach() ]
>>
>> [ 1.177283] brcmfmac: F1 signature read @0x18000000=0x1042aae8
>> [ 1.182912] found AXI chip: BCM43752/2
>> [ 1.186384] BCM43752/2: chip=aae8 rev=2 type=1
>>
>> Here it reports 0xaae8 (i.e. 43752)
>>
>> Why the discrepancy?
>> Can it cause issues?
>> (Sometimes, the whole SDIO bus doesn't probe at boot.
>> I am still investigating these intermittent problems.)
>>
>> Should I use 43751 or 43752 firmware...?
>
> This question should be answered by the Cypress/Infineon folks but
> unfortunately they have been quiet for a long time. In general we use
> the id read from 0x18000000 to decide which firmware to load. But be
> aware that the rev also matters. There are some examples in
> brcmf_sdio_fwnames table that the different firmware name can be
> derived from the same chip common id but different rev.
>
> However sdio device enumeration happens before firmware download so
> the intermittent problem you are facing probably is not related to
> firmware version.
Disclosure: My knowledge of SDIO device enumeration is 0.
When the host sends the equivalent of an "identify yourself" message
on the SDIO bus, doesn't the reply come from the WiFi device?
Why would the device reply 0xaae7 instead of 0xaae8?
In other words, who is replying 0xaae7?
Regards.
More information about the linux-amlogic
mailing list