Linux wireless drivers development
 help / color / mirror / Atom feed
From: Arend Van Spriel <arend.vanspriel@broadcom.com>
To: Christian Hewitt <christianshewitt@gmail.com>
Cc: linux-wireless@vger.kernel.org,
	brcm80211-dev-list.pdl@broadcom.com,
	brcm80211-dev-list@cypress.com, Wright.Feng@cypress.com,
	Neil Armstrong <narmstrong@baylibre.com>,
	Christoph Muellner <christoph.muellner@theobroma-systems.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Subject: Re: [RESEND] brcmfmac support for BCM4359 sdio on arm64 ??
Date: Thu, 12 Dec 2019 10:07:59 +0100	[thread overview]
Message-ID: <36c7930b-c986-daef-6fe6-cc79117fd188@broadcom.com> (raw)
In-Reply-To: <096CB8E8-5D24-4EEF-B283-746D6AA7C105@gmail.com>

On 12/10/2019 3:15 PM, Christian Hewitt wrote:
> 
>> On 21 Nov 2019, at 8:01 pm, Christian Hewitt 
>> <christianshewitt@gmail.com <mailto:christianshewitt@gmail.com>> wrote:
>>>
>>> On 21 Nov 2019, at 1:00 pm, Arend Van Spriel 
>>> <arend.vanspriel@broadcom.com <mailto:arend.vanspriel@broadcom.com>> 
>>> wrote:
>>>
>>> On 11/21/2019 4:52 AM, Christian Hewitt wrote:
>>>>> On 24 Jun 2019, at 11:04 pm, Arend Van Spriel 
>>>>> <arend.vanspriel@broadcom.com 
>>>>> <mailto:arend.vanspriel@broadcom.com>> wrote:
>>>>>
>>>>> Hi Christian,
>>>>>
>>>>> Here it is. Hopefully unmangled this time.
>>>>>
>>>>> Regards,
>>>>> Arend
>>>>> ---
>>>>> diff --git 
>>>>> a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c 
>>>>> b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
>>>>> index ec129864cc9c..7be8064c6dc7 100644
>>>>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
>>>>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
>>>>> @@ -785,7 +785,8 @@ void brcmf_sdiod_sgtable_alloc(struct 
>>>>> brcmf_sdio_dev *sdiodev)
>>>>>                     sdiodev->settings->bus.sdio.txglomsz);
>>>>>       nents += (nents >> 4) + 1;
>>>>>
>>>>> -       WARN_ON(nents > sdiodev->max_segment_count);
>>>>> +       WARN(nents > sdiodev->max_segment_count, "max_seg_cnt=%u, 
>>>>> host_max_seg=%u, nents=%u\n",
>>>>> +                sdiodev->max_segment_count, host->max_segs, nents);
>>>>>
>>>>>       brcmf_dbg(TRACE, "nents=%d\n", nents);
>>>>>       err = sg_alloc_table(&sdiodev->sgtable, nents, GFP_KERNEL);
>>>> Hello Arend,
>>>> I’ve resumed testing on 5.4-rc8 with ^ this patch and 
>>>> https://github.com/chewitt/linux/commit/07fd0f25ceb72b15aa8c3fbd149aa41cbc55d035 
>>>> applied and brcmfmac.debug=30 in boot params. Here is more extended 
>>>> output:
>>>> [    6.115132] brcmfmac: brcmfmac_module_init No platform data 
>>>> available.
>>>> [    6.116841] brcmfmac: brcmf_sdio_probe Enter
>>>> [    6.118695] brcmfmac: F1 signature read @0x18000000=0x17294359
>>>> [    6.118910] brcmfmac: brcmf_chip_recognition found AXI chip: 
>>>> BCM4359/9
>>>> [    6.120687] brcmfmac: brcmf_chip_cores_check  [1 ] core 0x800:52 
>>>> base 0x18000000 wrap 0x18100000
>>>> [    6.120692] brcmfmac: brcmf_chip_cores_check  [2 ] core 0x812:59 
>>>> base 0x18001000 wrap 0x18101000
>>>> [    6.120695] brcmfmac: brcmf_chip_cores_check  [3 ] core 0x83e:8 
>>>>  base 0x18002000 wrap 0x18102000
>>>> [    6.120697] brcmfmac: brcmf_chip_cores_check  [4 ] core 0x83c:21 
>>>> base 0x18003000 wrap 0x18103000
>>>> [    6.120698] brcmfmac: brcmf_chip_cores_check  [5 ] core 0x812:59 
>>>> base 0x18004000 wrap 0x18104000
>>>> [    6.120700] brcmfmac: brcmf_chip_cores_check  [6 ] core 0x829:22 
>>>> base 0x18005000 wrap 0x18105000
>>>> [    6.120702] brcmfmac: brcmf_chip_cores_check  [7 ] core 0x840:5 
>>>>  base 0x1800a000 wrap 0x00000000
>>>> [    6.120703] brcmfmac: brcmf_chip_cores_check  [8 ] core 0x135:0 
>>>>  base 0x00000000 wrap 0x18109000
>>>> [    6.120704] brcmfmac: brcmf_chip_cores_check  [9 ] core 0x240:0 
>>>>  base 0x00000000 wrap 0x00000000
>>>> [    6.120706] brcmfmac: brcmf_chip_set_passive Enter
>>>> [    6.121378] brcmfmac: brcmf_chip_get_raminfo RAM: base=0x180000 
>>>> size=917504 (0xe0000) sr=0 (0x0)
>>>> [    6.121438] brcmfmac: brcmf_chip_setup ccrev=52, pmurev=26, 
>>>> pmucaps=0x3a0c3f1a
>>>> [    6.121441] brcmfmac: brcmf_get_module_param Enter, bus=0, 
>>>> chip=17241, rev=9
>>>> [    6.121618] brcmfmac: brcmf_sdiod_sgtable_alloc nents=35
>>>> [    6.121621] brcmfmac: brcmf_sdio_kso_init Enter
>>>> [    6.121635] brcmfmac: brcmf_sdio_drivestrengthinit No SDIO driver 
>>>> strength init needed for chip BCM4359/9 rev 9 pmurev 26
>>>> [    6.121998] brcmfmac: brcmf_sdio_probe completed!!
>>>> [    6.122003] brcmfmac: brcmf_fw_alloc_request: using 
>>>> brcm/brcmfmac4359-sdio for chip BCM4359/9
>>>> [    6.122008] brcmfmac: brcmf_fw_get_firmwares enter: dev=mmc0:0001:1
>>>> [    6.293561] brcmfmac: brcmf_fw_complete_request firmware 
>>>> brcm/brcmfmac4359-sdio.bin found
>>>> [    6.309769] brcmfmac: brcmf_fw_complete_request firmware 
>>>> brcm/brcmfmac4359-sdio.txt found
>>>> [    6.309772] brcmfmac: brcmf_fw_request_nvram_done enter: 
>>>> dev=mmc0:0001:1
>>>> [    6.309840] brcmfmac: brcmf_fw_request_nvram_done nvram 
>>>> 000000007040259b len 3564
>>>> [    6.309843] brcmfmac: brcmf_sdio_firmware_callback Enter: 
>>>> dev=mmc0:0001:1, err=0
>>>> [    8.206959] brcmfmac: brcmf_sdio_download_code_file Enter
>>>> [    8.272184] brcmfmac: brcmf_sdio_verifymemory Compare RAM dl & ul 
>>>> at 0x00180000; size=636647
>>>> [    8.354229] brcmfmac: brcmf_sdio_download_nvram Enter
>>>> [    8.359730] brcmfmac: brcmf_sdio_verifymemory Compare RAM dl & ul 
>>>> at 0x0025f214; size=3564
>>>> [    8.367550] brcmfmac: brcmf_sdiod_ramrw: membytes transfer failed
>>>> [    8.373550] brcmfmac: brcmf_sdio_verifymemory: error -84 on 
>>>> reading 2048 membytes at 0x0025f214
>>>> [    8.382188] brcmfmac: brcmf_sdio_download_firmware: dongle nvram 
>>>> file download failed
>>>> [    8.389982] brcmfmac: brcmf_sdio_firmware_callback failed: 
>>>> dev=mmc0:0001:1, err=-5
>>>> [    8.397514] brcmfmac: brcmf_sdio_remove Enter
>>>> [    8.402641] brcmfmac: brcmf_detach Enter
>>>> [    8.434899] brcmfmac: brcmf_chip_set_passive Enter
>>>> [    8.458772] brcmfmac: brcmf_sdio_remove Disconnected
>>>> I’m using renamed nvram.txt and fw_bcm4359c0_ag_apsta.bin from the 
>>>> bcmdhd.1.579.77.41.x driver (https://github.com/chewitt/bcmdhd/). In 
>>>> the full dmesg: https://pastebin.com/raw/DUUGSjWw there is some 
>>>> kernel splat starting 6.121488 that appears to be from probing. 
>>>> FWIW, the BT side of the device appears to be working fine.
>>>> Any suggestions?
>>>
>>> This is a differing issue, right? Sorry it has been a while back and 
>>> I did not search for your earlier emails.
>>>
>>> The error -84 is -EILSEQ which we get from SDIO layer. I think this 
>>> is returned when CRC errors occur on the SDIO bus. It would trigger a 
>>> retune in the host controller.
>>>
>>> Were you seeing similar issues on earlier kernel?
>>
>> BCM4359 has mainline support for some time as a PCIe device. I’m 
>> attempting SDIO support by patching ID’s to the usual places.
>>
>> I’ve seen the probing kernel splat on probing on all kernels I’ve 
>> attempted to use. I’ve been attempting since ~4.19.
>>
>> I’m testing with a selection of Amlogic boards/boxes covering 
>> Amlogic’s GXM, G12A, G12B and SM1 platforms. The G12*/SM1 boards are 
>> based on the OEM vendor reference design with relatively minor 
>> variations between them. I have G12B boxes (same base platform) that 
>> work fine with other Ampak modules. I have devices of all varieties 
>> that have the same Ampak ap6398s module. In all cases the BT side 
>> works fine, but the WiFi shows the errors ^ above.
>>
>> I don’t see any special handling for the BCM4359 in the bcmdhd code, 
>> but it appears to be grouped alongside 4349/4355 chips:
>>
>> https://github.com/chewitt/bcmdhd/blob/f7009015df77fdeb35f9c7d6925f83861acc54f3/include/sbchipc.h#L3989
>>
>> None of those chips appear in current mainline code under the SDIO 
>> path (4355 shows under PCIe) so my guess is that it’s not CRC errors, 
>> but these chips need a slightly different firmware loading process. I 
>> don’t see any special ifdef/handling for BCM4359 in the bcmdhd code, 
>> but then I’m not a coding developer so my ability to read and 
>> understand the code is limited.
>>
>> Recent-ish bcmdhd code is known/working on the same hardware with 
>> minor nip/tuck changes:
>>
>> https://gitlab.com/baylibre/amlogic/atv/linux/commits/narmstrong/v5.1/aml/integ-5.1-bcmdhd
> 
> Arend, is there any more input/context I can provide?
> 
> If it would help to have hardware with this chipset to explore what’s 
> needed, it can be easily arranged.

Hi Christian,

I noticed some upstream patches for 4359 sdio from Cypress couple of 
days ago. Here is one of the patches from v2 series: 
https://patchwork.kernel.org/patch/11286555/

Regards,
Arend

      parent reply	other threads:[~2019-12-12  9:08 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-08  3:39 [RESEND] brcmfmac support for BCM4359 sdio on arm64 ?? Christian Hewitt
2019-06-11  9:45 ` Arend Van Spriel
2019-06-12  8:22   ` Christian Hewitt
2019-06-24 15:45   ` Christian Hewitt
2019-06-24 19:04     ` Arend Van Spriel
2019-06-30 17:06       ` Christian Hewitt
2019-11-21  3:52       ` Christian Hewitt
2019-11-21  9:00         ` Arend Van Spriel
2019-11-21 12:01           ` Christian Hewitt
     [not found]             ` <096CB8E8-5D24-4EEF-B283-746D6AA7C105@gmail.com>
2019-12-12  9:07               ` Arend Van Spriel [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=36c7930b-c986-daef-6fe6-cc79117fd188@broadcom.com \
    --to=arend.vanspriel@broadcom.com \
    --cc=Wright.Feng@cypress.com \
    --cc=brcm80211-dev-list.pdl@broadcom.com \
    --cc=brcm80211-dev-list@cypress.com \
    --cc=christianshewitt@gmail.com \
    --cc=christoph.muellner@theobroma-systems.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=narmstrong@baylibre.com \
    --cc=ulf.hansson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox