All of lore.kernel.org
 help / color / mirror / Atom feed
* ath10k-firmware: QCA4019 hw1.0: Add GL.iNet GL-B1300 specific BDFs
@ 2018-03-27  6:48 Dongming Han
  2018-03-27  7:19 ` Sven Eckelmann
  2018-04-19 14:40 ` Kalle Valo
  0 siblings, 2 replies; 5+ messages in thread
From: Dongming Han @ 2018-03-27  6:48 UTC (permalink / raw)
  To: ath10k

[-- Attachment #1: Type: text/plain, Size: 1678 bytes --]

Hi,

Tying to upstream BDFs of GL.iNet GL-B1300 to ath10k-firmware.
This router uses two changed BDFs based on
boardData_1_0_IPQ4019_Y9803_wifi0.bin & boardData_1_0_IPQ4019_Y9803_wifi1.bin.
We changed BDF for target power of both BDFs and FEM control parameter
antCtrlCommon2_G_0_0 of boardData_1_0_IPQ4019_Y9803_wifi0.

I'm not quite sure if ath10k driver need to add these two changed BDF
to work properly
for this board.

I think the ART data is made based on BDF. Maybe the antCtrlCommon logic
and target power parameter is passed to driver by ART but not BDF?
That way we're all happier no need to mantain these change. Please advise.

Now to the questions from the wiki page [1]:

* description for what hardware this is:

  - it is a IPQ4028 based router. More information [2]

* origin of the board file (did you create it yourself or where you
  downloaded)

  - we create it. Can also be extracted from manufacturer firmware[3].

* ids to be used with the board file (ATH10K_BD_IE_BOARD_NAME in ath10k)

  - bus=ahb,bmi-chip-id=0,bmi-board-id=16,variant=GL-B1300
   sha256sum: 34d5b821826aad1699666ec95df19a1767245ab424068161275a7ace947eedee
  - bus=ahb,bmi-chip-id=0,bmi-board-id=17,variant=GL-B1300
   sha256sum: d0abd802b3d04b51f4a40883157e86b1ff3a204c660d0aa3365ae8e55f625a3e

* attach the actual board file (board.bin)

  - The name of the files are equal to the id string in the board-2.bin
    (minus the ".bin")

Many thanks to Sven for his guidance.

[1] https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles
[2] https://github.com/openwrt/openwrt/commit/04d3308b6248ef21a6f0bc3378b342906c2d2865
[3] http://www.gl-inet.com/firmware/b1300/clean/

[-- Attachment #2: bus=ahb,bmi-chip-id=0,bmi-board-id=16,variant=GL-B1300.bin --]
[-- Type: application/octet-stream, Size: 12064 bytes --]

[-- Attachment #3: bus=ahb,bmi-chip-id=0,bmi-board-id=17,variant=GL-B1300.bin --]
[-- Type: application/octet-stream, Size: 12064 bytes --]

[-- Attachment #4: Type: text/plain, Size: 146 bytes --]

_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ath10k-firmware: QCA4019 hw1.0: Add GL.iNet GL-B1300 specific BDFs
  2018-03-27  6:48 ath10k-firmware: QCA4019 hw1.0: Add GL.iNet GL-B1300 specific BDFs Dongming Han
@ 2018-03-27  7:19 ` Sven Eckelmann
  2018-03-28  6:23   ` Sebastian Gottschall
  2018-04-19 14:40 ` Kalle Valo
  1 sibling, 1 reply; 5+ messages in thread
From: Sven Eckelmann @ 2018-03-27  7:19 UTC (permalink / raw)
  To: ath10k; +Cc: Dongming Han


[-- Attachment #1.1: Type: text/plain, Size: 866 bytes --]

On Dienstag, 27. März 2018 14:48:05 CEST Dongming Han wrote:
> I think the ART data is made based on BDF. Maybe the antCtrlCommon logic
> and target power parameter is passed to driver by ART but not BDF?
> That way we're all happier no need to mantain these change. Please advise.

The antCtrlCommon is part of biModalHeader and this one is taken from the BDF 
and not from the pre-cal data (ART). Same is true for the target power limits.

I am only aware of following things which are taken from the pre-cal data 
(ART):

* mac
* hal_cal version info
* custData
* regDmn
* txrxMask
* calFreqPier*
* calPierData*
* rxGainCalTbl
* param_for_tuning_caps*

Of course, also the bmi ids are taken from the ART before you load the correct 
BDF from the board-2.bin (otherwise, the chip would not know what it actually 
is).

Kind regards,
	Sven

[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 146 bytes --]

_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ath10k-firmware: QCA4019 hw1.0: Add GL.iNet GL-B1300 specific BDFs
  2018-03-27  7:19 ` Sven Eckelmann
@ 2018-03-28  6:23   ` Sebastian Gottschall
  2018-03-28  7:42     ` Sven Eckelmann
  0 siblings, 1 reply; 5+ messages in thread
From: Sebastian Gottschall @ 2018-03-28  6:23 UTC (permalink / raw)
  To: ath10k

correct me if i'm wrong. but isnt the board data stored in flash memory 
on these devices like on every other router i know using ath10k chipsets?
this all sounds a little bit curious for me

Sebastian

Am 27.03.2018 um 09:19 schrieb Sven Eckelmann:
> On Dienstag, 27. März 2018 14:48:05 CEST Dongming Han wrote:
>> I think the ART data is made based on BDF. Maybe the antCtrlCommon logic
>> and target power parameter is passed to driver by ART but not BDF?
>> That way we're all happier no need to mantain these change. Please advise.
> The antCtrlCommon is part of biModalHeader and this one is taken from the BDF
> and not from the pre-cal data (ART). Same is true for the target power limits.
>
> I am only aware of following things which are taken from the pre-cal data
> (ART):
>
> * mac
> * hal_cal version info
> * custData
> * regDmn
> * txrxMask
> * calFreqPier*
> * calPierData*
> * rxGainCalTbl
> * param_for_tuning_caps*
>
> Of course, also the bmi ids are taken from the ART before you load the correct
> BDF from the board-2.bin (otherwise, the chip would not know what it actually
> is).
>
> Kind regards,
> 	Sven
>
>
> _______________________________________________
> ath10k mailing list
> ath10k@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/ath10k


-- 
Mit freundlichen Grüssen / Regards

Sebastian Gottschall / CTO

NewMedia-NET GmbH - DD-WRT
Firmensitz:  Stubenwaldallee 21a, 64625 Bensheim
Registergericht: Amtsgericht Darmstadt, HRB 25473
Geschäftsführer: Peter Steinhäuser, Christian Scheele
http://www.dd-wrt.com
email: s.gottschall@dd-wrt.com
Tel.: +496251-582650 / Fax: +496251-5826565


_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ath10k-firmware: QCA4019 hw1.0: Add GL.iNet GL-B1300 specific BDFs
  2018-03-28  6:23   ` Sebastian Gottschall
@ 2018-03-28  7:42     ` Sven Eckelmann
  0 siblings, 0 replies; 5+ messages in thread
From: Sven Eckelmann @ 2018-03-28  7:42 UTC (permalink / raw)
  To: ath10k; +Cc: Sebastian Gottschall


[-- Attachment #1.1: Type: text/plain, Size: 3408 bytes --]

On Mittwoch, 28. März 2018 08:23:43 CEST Sebastian Gottschall wrote:
> correct me if i'm wrong. but isnt the board data stored in flash memory 
> on these devices like on every other router i know using ath10k chipsets?
> this all sounds a little bit curious for me

The BDF is stored either in the board.bin or board-2.bin on routers which use 
ath10k. Similar files (raw BDFs with other names) exist on devices which use 
the QCA driver. These files don't contain the device specific information (see 
my earlier mail for the things which seem to be device specific). So they are 
basically part of the rootfs.

The device specific information are stored somewhere else on the device. This 
can for example be in the ART or on a dedicated EEPROM [1]. The OTP binary 
(running on the wifi chip) is receiving both files from the driver, combining 
them and adjusting some things here and there. The combined memory region is 
then given to the actual wifi firmware.

Yes, this all is rather complicated and I think was introduced with the QCA 
802.11ac Wave2 chips. This especially ended up be a problem when QCA was only 
providing board-ids for its own reference designs. Unfortunately, these board 
ids are used to identify the BDFs in the board-2.bin. So we had to introduce 
an additional, optional information that we can use to differentiate between 
different BDFs which have the same board-id - the so called (qcom,ath10k-
calibration-)variant.

It could now be that you're statement was actual suggesting something else:

* Why don't you just use the information from ART and load it as cal data 
  instead of pre-cal data?

   - The firmware seems to behave differently when we do that. Maybe the
     "additional modifications" are not done by the OTP in that case. 
     Maybe QCA can tell you more about that.
   - But there are also another things which we will discuss in the next
     point.

* Why don't you load the information from ART and use it as pre-cal and BDF?

  - The BDF can also contain other information than the pre-cal data in the 
    sections which are not copied from the pre-cal data. This happens all
    the time during the development but can also happen later. Maybe this was
    the reason why QCA implemented this mechanism. It is for example planned 
    to update the A42 BDFs in some weeks.


Small (cut-down) story at the end and why we need special BDFs. During the 
initial development of the A42 OpenWrt support, the HW manufacturer told us 
that we should use the official QCA BDFs with some QCA internal code (which 
translate to bmi-board-id 16/17). We did that and noticed that the board was 
consuming a sh*tload of power and performed worse than a dead horse. After 
some attempts to communicate the problem and some first incorrect assumptions 
from both sides (but with help from some brave OSS developers), the HW 
manufacturer told us about his "official" BDFs which were actually not looking 
like the QCA files at all but had the same IDs. Reason for that was the 
removal of the QCA reference design non-SoC radio components and the 
replacement with their own design. This is where the story of the 
(qcom,ath10k-calibration-)variant began (for me).

Kind regards,
	Sven

[1] I just use this here as placeholder for "any kind of non-volatile memory
    which is no the main storage"

[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 146 bytes --]

_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ath10k-firmware: QCA4019 hw1.0: Add GL.iNet GL-B1300 specific BDFs
  2018-03-27  6:48 ath10k-firmware: QCA4019 hw1.0: Add GL.iNet GL-B1300 specific BDFs Dongming Han
  2018-03-27  7:19 ` Sven Eckelmann
@ 2018-04-19 14:40 ` Kalle Valo
  1 sibling, 0 replies; 5+ messages in thread
From: Kalle Valo @ 2018-04-19 14:40 UTC (permalink / raw)
  To: Dongming Han; +Cc: ath10k

Dongming Han <workspace4hdm@gmail.com> writes:

> Tying to upstream BDFs of GL.iNet GL-B1300 to ath10k-firmware.
> This router uses two changed BDFs based on
> boardData_1_0_IPQ4019_Y9803_wifi0.bin & boardData_1_0_IPQ4019_Y9803_wifi1.bin.
> We changed BDF for target power of both BDFs and FEM control parameter
> antCtrlCommon2_G_0_0 of boardData_1_0_IPQ4019_Y9803_wifi0.
>
> I'm not quite sure if ath10k driver need to add these two changed BDF
> to work properly
> for this board.
>
> I think the ART data is made based on BDF. Maybe the antCtrlCommon logic
> and target power parameter is passed to driver by ART but not BDF?
> That way we're all happier no need to mantain these change. Please advise.
>
> Now to the questions from the wiki page [1]:
>
> * description for what hardware this is:
>
>   - it is a IPQ4028 based router. More information [2]
>
> * origin of the board file (did you create it yourself or where you
>   downloaded)
>
>   - we create it. Can also be extracted from manufacturer firmware[3].
>
> * ids to be used with the board file (ATH10K_BD_IE_BOARD_NAME in ath10k)
>
>   - bus=ahb,bmi-chip-id=0,bmi-board-id=16,variant=GL-B1300
>    sha256sum: 34d5b821826aad1699666ec95df19a1767245ab424068161275a7ace947eedee
>   - bus=ahb,bmi-chip-id=0,bmi-board-id=17,variant=GL-B1300
>    sha256sum: d0abd802b3d04b51f4a40883157e86b1ff3a204c660d0aa3365ae8e55f625a3e
>
> * attach the actual board file (board.bin)
>
>   - The name of the files are equal to the id string in the board-2.bin
>     (minus the ".bin")

Added now, please check:

https://github.com/kvalo/ath10k-firmware/commit/3af9ae584691acbe2356e30fac8380ad4840d8a6

New:
bus=ahb,bmi-chip-id=0,bmi-board-id=16,variant=GL-B1300

Changed:


Deleted:

1 board image(s) added, 0 changed, 0 deleted, 18 in total

New:
bus=ahb,bmi-chip-id=0,bmi-board-id=17,variant=GL-B1300

Changed:


Deleted:

1 board image(s) added, 0 changed, 0 deleted, 19 in total

-- 
Kalle Valo

_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-04-19 14:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-27  6:48 ath10k-firmware: QCA4019 hw1.0: Add GL.iNet GL-B1300 specific BDFs Dongming Han
2018-03-27  7:19 ` Sven Eckelmann
2018-03-28  6:23   ` Sebastian Gottschall
2018-03-28  7:42     ` Sven Eckelmann
2018-04-19 14:40 ` Kalle Valo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.