Re: [PATCH] brcm: add CLM BLOB files for Luxul devices

2024-05-25 Thread Rafał Miłecki

Hi Josh,

I'm OpenWrt developer and those CLM BLOBs have significant meaning for
this project. They allow OpenWrt users to use their devices with full
WiFi support (not limited to some generic fallback setup level).

For that let me speak up regarding this PATCH case.

On 12.06.2023 18:57, Josh Boyer wrote:

On Mon, Jun 12, 2023 at 11:05 AM Rip Route  wrote:


The files were compiled from source obtained through Luxul's contract 
manufacturer of these devices.


OK, it's not clear to me whether we can accept these.  We have no idea
what your contract specified, what sources were used, what the license
on them is, or if you had authority to release them at all.  I'm not
questioning your integrity by any means, but we have very little way
to know Broadcom is agreeable to these being included in the
linux-firmware repo.  If Broadcom wants to submit them or provide a
Signed-off-by statement, we might be able to take them then.


I fully understand your concerns. Those are binary files and it's hard
to tell what they contain at first sight.

It'd be perfect to have Broadcom simply approve them but I'm afraid it's
unlikely. I see linux-wireless@ and Broadcom lists were cc-ed but we
didn't get any feedback. I know some firmware contributions took
Broadcom months or years in the past.

So I'd try to analyze what we have here and try to review it.


First of all: CLM (BLOB) is a binary formatted data. It doesn't contain
any actual CPU-executable code. It gets uploaded to FullMAC (closed
source) firmware and gets parsed by it.

So what we have here is not actual firmware (executable binary) built
from proprietary C sources full of logic and possibly some patent. We
have binary files containing (literally) numbers and strings. They just
use a binary undocumented format.


I actually took a moment to reverse engineer those files and write basic
tools for them.

BLOB is a simple container format with header containing offsets, sizes
and CRC32 sums. I developed "bcmblob" tool for parsing BLOBs and
extracting from them:
https://git.openwrt.org/?p=project/firmware-utils.git;a=commitdiff;h=f730ad2fa0b4728e2bd66771d22cf642909e020e

CLM BLOB is a BLOB file containing CLM and chipset version. I also
developed absolutely basic tool "bcmclm" for parsing CLM files:
https://git.openwrt.org/?p=project/firmware-utils.git;a=commitdiff;h=916633160dc92ccae6a0ad8fd900f2d75b5b5ff0


Given that, in my I-am-not-a-lawyer opinion, those files are safe to
accept and distribute.

If I were to compare them to something it'd be an XLS stylesheet file.
It's a binary undocumented format but what it actually contains are
sets of values.

I don't think it raises any concerns to use a custom binary format.
We're clearly fine sharing .xls, .exe or .rar files.

I also don't think you can stop anyone from sharing a list of 2 GHz,
5 GHz or 6 GHz channels. Or their rates. Or flags (like radar etc.).
Or allowed TX power levels. Just numbers in general.


Do you think that with my basic technical summary and Luxul-provided
info you can accept those files?

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [PATCH] brcm: add CLM BLOB files for Luxul devices

2023-06-12 Thread Sridhar via openwrt-devel
The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.--- Begin Message ---
You scamming Idiots , don’t you know whom you are sending emails to

Thanks 
Sridhar 

Sent from my iPhone

> On Jun 12, 2023, at 3:38 PM, Rip Route  wrote:
> 
> There is no intent to be argumentative here, but a brief explanation
> of our thoughts may be in order.
> 
> CLM BLOBs are designed by Broadcom for vendors like us. They support
> them officially in their upstream brcmfmac driver and firmware
> released for brcmfmac. It was Broadcom's intention to allow companies
> to provide CLM data as external files for devices without suport
> built into their firmware.
> 
> By submitting those files we take the responsibility of allowing
> their redistribution.
> 
> This situation is similar to random companies submitting NVRAM files
> to linux-firmware repo. Some calibration data can be stored in
> text-based NVRAM files; CLM BLOBs also contain calibration data.
> Just stored in binary format. It's really just a set of numeric
> values stored as multiple arrays. The unusal part (and probably not
> very optimal) is binary form.
> 
> This same data could be readily extracted from the device firmware
> image.
> 
> dan
> 
>> On Mon, Jun 12, 2023 at 10:58 AM Josh Boyer  wrote:
>> 
>>> On Mon, Jun 12, 2023 at 11:05 AM Rip Route  wrote:
>>> 
>>> The files were compiled from source obtained through Luxul's contract 
>>> manufacturer of these devices.
>> 
>> OK, it's not clear to me whether we can accept these.  We have no idea
>> what your contract specified, what sources were used, what the license
>> on them is, or if you had authority to release them at all.  I'm not
>> questioning your integrity by any means, but we have very little way
>> to know Broadcom is agreeable to these being included in the
>> linux-firmware repo.  If Broadcom wants to submit them or provide a
>> Signed-off-by statement, we might be able to take them then.
>> 
>> josh
>> 
>>> On Mon, Jun 12, 2023 at 6:29 AM Josh Boyer  wrote:
 
 On Thu, Jun 1, 2023 at 1:31 PM Dan Haab  wrote:
> 
> From: Dan Haab 
> 
> Add per-device regulatory configuration files for complete channel 
> support and
> maximum transmission power per regulatory domain.
 
 Where did you get these files from?  Given that they're likely from
 Broadcom, we'd expect a Broadcom Signed-off-by or review at least.
 
 josh
 
> Signed-off-by: Dan Haab 
> ---
> WHENCE  |  15 +++
> ...rcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob | Bin 0 -> 28224 bytes
> ...rcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob | Bin 0 -> 34368 bytes
> 3 files changed, 15 insertions(+)
> create mode 100644 brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
> create mode 100644 brcm/brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
> 
> diff --git a/WHENCE b/WHENCE
> index 32d71481..d3fc870d 100644
> --- a/WHENCE
> +++ b/WHENCE
> @@ -2630,6 +2630,21 @@ File: brcm/brcmfmac4371-pcie.bin
> 
> Licence: Redistributable. See LICENCE.broadcom_bcm43xx for details.
> 
> +File: brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
> +File: brcm/brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
> +Link: brcm/brcmfmac4366c-pcie.luxul,xwr-3150-v1.clm_blob -> 
> brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
> +
> +Licence: Redistributable.
> +
> +CLM (Country Locale Matrix) BLOB files contain regulatory configuration 
> data.
> +It's to be parsed and used by a wireless driver.
> +
> +Permission is hereby granted to use and redistribute those files as 
> required.
> +
> +These firmware files are distributed in the hope that they will be 
> useful, but
> +WITHOUT ANY WARRANTY; without even the implied warranty of 
> MERCHANTABILITY or
> +FITNESS FOR A PARTICULAR PURPOSE.
> +
> File: brcm/brcmfmac4373.bin
> File: cypress/cyfmac43012-sdio.bin
> Link: brcm/brcmfmac43012-sdio.bin -> ../cypress/cyfmac43012-sdio.bin
> diff --git a/brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob 
> b/brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
> new file mode 100644
> index 
> ..32ca36d7df48ecc5e899e89da347e16a8bcfdcb4
> GIT binary patch
> literal 28224
> zcmeHwYkV8ob>E#kcODoF9y6E=5CBOKAP7PfNr7C51i>LRgg_FcKnNlr3Zkf$mf`Xz
> zY3((uDz3Usw(EE;uQ!|Rw#{bkI_cU;wsq??w$t>Twt2X1+UC(m(mL-)`=KBEvES5l
> zXD}c|Qd&wYIZkZ+eh}{5x%WK(=iGDeKw!CczHB0dw9PO65(l3c-t5Kt(8~zDW=&mW
> zP4+V3n!x8q<+oSa_1W6$KxMu)kB|=YX2vIT<2ly9_nH`gZfbney|z9Mb3XR*<&W=v
> z;`W{5z{Gg|^nnTG+n;!0`};oe@v#ReaefXl*>1p__d4x6&`yn$v_-bxA@6>JFu7iX
> zccvuoye+@?H5uAGynhtlBgNpYH-lgNYOvGy75H>t9LFh~m

Re: [PATCH] brcm: add CLM BLOB files for Luxul devices

2023-06-12 Thread Rip Route
There is no intent to be argumentative here, but a brief explanation
of our thoughts may be in order.

CLM BLOBs are designed by Broadcom for vendors like us. They support
them officially in their upstream brcmfmac driver and firmware
released for brcmfmac. It was Broadcom's intention to allow companies
to provide CLM data as external files for devices without suport
built into their firmware.

By submitting those files we take the responsibility of allowing
their redistribution.

This situation is similar to random companies submitting NVRAM files
to linux-firmware repo. Some calibration data can be stored in
text-based NVRAM files; CLM BLOBs also contain calibration data.
Just stored in binary format. It's really just a set of numeric
values stored as multiple arrays. The unusal part (and probably not
very optimal) is binary form.

This same data could be readily extracted from the device firmware
image.

dan

On Mon, Jun 12, 2023 at 10:58 AM Josh Boyer  wrote:
>
> On Mon, Jun 12, 2023 at 11:05 AM Rip Route  wrote:
> >
> > The files were compiled from source obtained through Luxul's contract 
> > manufacturer of these devices.
>
> OK, it's not clear to me whether we can accept these.  We have no idea
> what your contract specified, what sources were used, what the license
> on them is, or if you had authority to release them at all.  I'm not
> questioning your integrity by any means, but we have very little way
> to know Broadcom is agreeable to these being included in the
> linux-firmware repo.  If Broadcom wants to submit them or provide a
> Signed-off-by statement, we might be able to take them then.
>
> josh
>
> > On Mon, Jun 12, 2023 at 6:29 AM Josh Boyer  wrote:
> >>
> >> On Thu, Jun 1, 2023 at 1:31 PM Dan Haab  wrote:
> >> >
> >> > From: Dan Haab 
> >> >
> >> > Add per-device regulatory configuration files for complete channel 
> >> > support and
> >> > maximum transmission power per regulatory domain.
> >>
> >> Where did you get these files from?  Given that they're likely from
> >> Broadcom, we'd expect a Broadcom Signed-off-by or review at least.
> >>
> >> josh
> >>
> >> > Signed-off-by: Dan Haab 
> >> > ---
> >> >  WHENCE  |  15 +++
> >> >  ...rcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob | Bin 0 -> 28224 bytes
> >> >  ...rcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob | Bin 0 -> 34368 bytes
> >> >  3 files changed, 15 insertions(+)
> >> >  create mode 100644 brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
> >> >  create mode 100644 brcm/brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
> >> >
> >> > diff --git a/WHENCE b/WHENCE
> >> > index 32d71481..d3fc870d 100644
> >> > --- a/WHENCE
> >> > +++ b/WHENCE
> >> > @@ -2630,6 +2630,21 @@ File: brcm/brcmfmac4371-pcie.bin
> >> >
> >> >  Licence: Redistributable. See LICENCE.broadcom_bcm43xx for details.
> >> >
> >> > +File: brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
> >> > +File: brcm/brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
> >> > +Link: brcm/brcmfmac4366c-pcie.luxul,xwr-3150-v1.clm_blob -> 
> >> > brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
> >> > +
> >> > +Licence: Redistributable.
> >> > +
> >> > +CLM (Country Locale Matrix) BLOB files contain regulatory configuration 
> >> > data.
> >> > +It's to be parsed and used by a wireless driver.
> >> > +
> >> > +Permission is hereby granted to use and redistribute those files as 
> >> > required.
> >> > +
> >> > +These firmware files are distributed in the hope that they will be 
> >> > useful, but
> >> > +WITHOUT ANY WARRANTY; without even the implied warranty of 
> >> > MERCHANTABILITY or
> >> > +FITNESS FOR A PARTICULAR PURPOSE.
> >> > +
> >> >  File: brcm/brcmfmac4373.bin
> >> >  File: cypress/cyfmac43012-sdio.bin
> >> >  Link: brcm/brcmfmac43012-sdio.bin -> ../cypress/cyfmac43012-sdio.bin
> >> > diff --git a/brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob 
> >> > b/brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
> >> > new file mode 100644
> >> > index 
> >> > ..32ca36d7df48ecc5e899e89da347e16a8bcfdcb4
> >> > GIT binary patch
> >> > literal 28224
> >> > zcmeHwYkV8ob>E#kcODoF9y6E=5CBOKAP7PfNr7C51i>LRgg_FcKnNlr3Zkf$mf`Xz
> >> > zY3((uDz3Usw(EE;uQ!|Rw#{bkI_cU;wsq??w$t>Twt2X1+UC(m(mL-)`=KBEvES5l
> >> > zXD}c|Qd&wYIZkZ+eh}{5x%WK(=iGDeKw!CczHB0dw9PO65(l3c-t5Kt(8~zDW=&mW
> >> > zP4+V3n!x8q<+oSa_1W6$KxMu)kB|=YX2vIT<2ly9_nH`gZfbney|z9Mb3XR*<&W=v
> >> > z;`W{5z{Gg|^nnTG+n;!0`};oe@v#ReaefXl*>1p__d4x6&`yn$v_-bxA@6>JFu7iX
> >> > zccvuoye+@?H5uAGynhtlBgNpYH-lgNYOvGy75H>t9LFh~ms2?(=f@Z;*o#%(qbOdl
> >> > zs;WNK@ALWnsqu6=ol9HkJL$L5@1(z+{viF0Y&M(AnxnaVK5yo&{9E~V@*fn;f(5T_
> >> > zc-`54Yx|w;4{p46 >> > zPki}<4|tyU@LocQL}a26uOP{?$K&yOy_rmAJX6ZNoVk~IJM(_#YvbcnQ&Xj>d!^FO
> >> > z&d$p__jcaidH>~CU%vP9+xPC>d;jgX-+S-9_uu>4`|pF!BO}F;TO+TGygBm4k*^ku
> >> > zw{G2f<<^_GzWB;3ue|xnSKoZ|%`d|1s|ayAcb}UF3kUern28PB?;Pd`CvZB}4XjhF
> >> > zM>vBwQYLQ*iIIHu5;#ni;%DK3H|Chjr0C>P`6d}`FhDH9Ky
> >> > z+$cB8nTqQ32ZEX&GN_6;%o9PBWRC*Y?)HZ

Re: [PATCH] brcm: add CLM BLOB files for Luxul devices

2023-06-12 Thread Sridhar via openwrt-devel
The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.--- Begin Message ---
Idiots

Thanks 
Sridhar 

Sent from my iPhone

> On Jun 12, 2023, at 12:00 PM, Josh Boyer  wrote:
> 
> On Mon, Jun 12, 2023 at 11:05 AM Rip Route  wrote:
>> 
>> The files were compiled from source obtained through Luxul's contract 
>> manufacturer of these devices.
> 
> OK, it's not clear to me whether we can accept these.  We have no idea
> what your contract specified, what sources were used, what the license
> on them is, or if you had authority to release them at all.  I'm not
> questioning your integrity by any means, but we have very little way
> to know Broadcom is agreeable to these being included in the
> linux-firmware repo.  If Broadcom wants to submit them or provide a
> Signed-off-by statement, we might be able to take them then.
> 
> josh
> 
>>> On Mon, Jun 12, 2023 at 6:29 AM Josh Boyer  wrote:
>>> 
>>> On Thu, Jun 1, 2023 at 1:31 PM Dan Haab  wrote:
 
 From: Dan Haab 
 
 Add per-device regulatory configuration files for complete channel support 
 and
 maximum transmission power per regulatory domain.
>>> 
>>> Where did you get these files from?  Given that they're likely from
>>> Broadcom, we'd expect a Broadcom Signed-off-by or review at least.
>>> 
>>> josh
>>> 
 Signed-off-by: Dan Haab 
 ---
 WHENCE  |  15 +++
 ...rcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob | Bin 0 -> 28224 bytes
 ...rcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob | Bin 0 -> 34368 bytes
 3 files changed, 15 insertions(+)
 create mode 100644 brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
 create mode 100644 brcm/brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
 
 diff --git a/WHENCE b/WHENCE
 index 32d71481..d3fc870d 100644
 --- a/WHENCE
 +++ b/WHENCE
 @@ -2630,6 +2630,21 @@ File: brcm/brcmfmac4371-pcie.bin
 
 Licence: Redistributable. See LICENCE.broadcom_bcm43xx for details.
 
 +File: brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
 +File: brcm/brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
 +Link: brcm/brcmfmac4366c-pcie.luxul,xwr-3150-v1.clm_blob -> 
 brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
 +
 +Licence: Redistributable.
 +
 +CLM (Country Locale Matrix) BLOB files contain regulatory configuration 
 data.
 +It's to be parsed and used by a wireless driver.
 +
 +Permission is hereby granted to use and redistribute those files as 
 required.
 +
 +These firmware files are distributed in the hope that they will be 
 useful, but
 +WITHOUT ANY WARRANTY; without even the implied warranty of 
 MERCHANTABILITY or
 +FITNESS FOR A PARTICULAR PURPOSE.
 +
 File: brcm/brcmfmac4373.bin
 File: cypress/cyfmac43012-sdio.bin
 Link: brcm/brcmfmac43012-sdio.bin -> ../cypress/cyfmac43012-sdio.bin
 diff --git a/brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob 
 b/brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
 new file mode 100644
 index 
 ..32ca36d7df48ecc5e899e89da347e16a8bcfdcb4
 GIT binary patch
 literal 28224
 zcmeHwYkV8ob>E#kcODoF9y6E=5CBOKAP7PfNr7C51i>LRgg_FcKnNlr3Zkf$mf`Xz
 zY3((uDz3Usw(EE;uQ!|Rw#{bkI_cU;wsq??w$t>Twt2X1+UC(m(mL-)`=KBEvES5l
 zXD}c|Qd&wYIZkZ+eh}{5x%WK(=iGDeKw!CczHB0dw9PO65(l3c-t5Kt(8~zDW=&mW
 zP4+V3n!x8q<+oSa_1W6$KxMu)kB|=YX2vIT<2ly9_nH`gZfbney|z9Mb3XR*<&W=v
 z;`W{5z{Gg|^nnTG+n;!0`};oe@v#ReaefXl*>1p__d4x6&`yn$v_-bxA@6>JFu7iX
 zccvuoye+@?H5uAGynhtlBgNpYH-lgNYOvGy75H>t9LFh~ms2?(=f@Z;*o#%(qbOdl
 zs;WNK@ALWnsqu6=ol9HkJL$L5@1(z+{viF0Y&M(AnxnaVK5yo&{9E~V@*fn;f(5T_
 zc-`54Yx|w;4{p46>>> zPki}<4|tyU@LocQL}a26uOP{?$K&yOy_rmAJX6ZNoVk~IJM(_#YvbcnQ&Xj>d!^FO
 z&d$p__jcaidH>~CU%vP9+xPC>d;jgX-+S-9_uu>4`|pF!BO}F;TO+TGygBm4k*^ku
 zw{G2f<<^_GzWB;3ue|xnSKoZ|%`d|1s|ayAcb}UF3kUern28PB?;Pd`CvZB}4XjhF
 zM>vBwQYLQ*iIIHu5;#ni;%DK3H|Chjr0C>P`6d}`FhDH9Ky
 z+$cB8nTqQ32ZEX&GN_6;%o9PBWRC*Y?)HZxdUbi_Ty3>}zHwo#*}AxXseRcv+_iC~
 zH#af)T>kXbbYaGvE1j|C%V#SKn^&K|cKwB|?;Ggt>rV_MQ-kTD%y9O^$VqpwJ2ZW8
 z!06avCYi&7Tsr%i5?hy^Xe^#}6*)N3o#wL79vpBK`|(p7S4J4w!-HLV`^6Y_nH%(|
 z+pcNCk>c#)Qf_bX@u=sHFUa^Q#$odK6I{^>k3YrXWx3iM)WtP~Yxjdbb~#rMP8=O`
 zr|viL!RhVGE&(RT#+Ah-*_A|g!QFCu4Ej--gd;AS_8!sW+w9@e?-54(V|0(nkzuJH
 z*5}AbHI6c6{~qz9ZhvS14;(ei^#;S=F@yK%hwNj;;pkx-9;KKA^YP;icCGN(F`j=s
 z`Uhg~xcGL(b3nJa^weT+We-xvQ{>?R@ofrYC`8oMAS_R?jIk6IbmX=dEgJ?wH;cHc
 z9kDv<2gexn=rBAyE*voqcCvN!Lxb;_u|*iMXNvHH(jWA@8%u8fe>>> z=!VD>6L{*eRsE={xDstXDWQi4>%P?sp=Ta3Pb)aSi{s*{W&Edx%C)DD%4ZDpr@asy
 zGo@z_8|rXih9etSo+Z4$y;=NwXmz&GkGmz>OUugMR$lq$zx((9;aC6TfBMhA_Up=j
 z`LF-&zyH>6|BwIqt>01i25ekW_lEq&Z>oEPe)soucR4T2xGSXYuI!Zss3h%^1O4mY
 z__=@l^Z(?Z{

Re: [PATCH] brcm: add CLM BLOB files for Luxul devices

2023-06-12 Thread Josh Boyer
On Mon, Jun 12, 2023 at 11:05 AM Rip Route  wrote:
>
> The files were compiled from source obtained through Luxul's contract 
> manufacturer of these devices.

OK, it's not clear to me whether we can accept these.  We have no idea
what your contract specified, what sources were used, what the license
on them is, or if you had authority to release them at all.  I'm not
questioning your integrity by any means, but we have very little way
to know Broadcom is agreeable to these being included in the
linux-firmware repo.  If Broadcom wants to submit them or provide a
Signed-off-by statement, we might be able to take them then.

josh

> On Mon, Jun 12, 2023 at 6:29 AM Josh Boyer  wrote:
>>
>> On Thu, Jun 1, 2023 at 1:31 PM Dan Haab  wrote:
>> >
>> > From: Dan Haab 
>> >
>> > Add per-device regulatory configuration files for complete channel support 
>> > and
>> > maximum transmission power per regulatory domain.
>>
>> Where did you get these files from?  Given that they're likely from
>> Broadcom, we'd expect a Broadcom Signed-off-by or review at least.
>>
>> josh
>>
>> > Signed-off-by: Dan Haab 
>> > ---
>> >  WHENCE  |  15 +++
>> >  ...rcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob | Bin 0 -> 28224 bytes
>> >  ...rcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob | Bin 0 -> 34368 bytes
>> >  3 files changed, 15 insertions(+)
>> >  create mode 100644 brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
>> >  create mode 100644 brcm/brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
>> >
>> > diff --git a/WHENCE b/WHENCE
>> > index 32d71481..d3fc870d 100644
>> > --- a/WHENCE
>> > +++ b/WHENCE
>> > @@ -2630,6 +2630,21 @@ File: brcm/brcmfmac4371-pcie.bin
>> >
>> >  Licence: Redistributable. See LICENCE.broadcom_bcm43xx for details.
>> >
>> > +File: brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
>> > +File: brcm/brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
>> > +Link: brcm/brcmfmac4366c-pcie.luxul,xwr-3150-v1.clm_blob -> 
>> > brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
>> > +
>> > +Licence: Redistributable.
>> > +
>> > +CLM (Country Locale Matrix) BLOB files contain regulatory configuration 
>> > data.
>> > +It's to be parsed and used by a wireless driver.
>> > +
>> > +Permission is hereby granted to use and redistribute those files as 
>> > required.
>> > +
>> > +These firmware files are distributed in the hope that they will be 
>> > useful, but
>> > +WITHOUT ANY WARRANTY; without even the implied warranty of 
>> > MERCHANTABILITY or
>> > +FITNESS FOR A PARTICULAR PURPOSE.
>> > +
>> >  File: brcm/brcmfmac4373.bin
>> >  File: cypress/cyfmac43012-sdio.bin
>> >  Link: brcm/brcmfmac43012-sdio.bin -> ../cypress/cyfmac43012-sdio.bin
>> > diff --git a/brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob 
>> > b/brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
>> > new file mode 100644
>> > index 
>> > ..32ca36d7df48ecc5e899e89da347e16a8bcfdcb4
>> > GIT binary patch
>> > literal 28224
>> > zcmeHwYkV8ob>E#kcODoF9y6E=5CBOKAP7PfNr7C51i>LRgg_FcKnNlr3Zkf$mf`Xz
>> > zY3((uDz3Usw(EE;uQ!|Rw#{bkI_cU;wsq??w$t>Twt2X1+UC(m(mL-)`=KBEvES5l
>> > zXD}c|Qd&wYIZkZ+eh}{5x%WK(=iGDeKw!CczHB0dw9PO65(l3c-t5Kt(8~zDW=&mW
>> > zP4+V3n!x8q<+oSa_1W6$KxMu)kB|=YX2vIT<2ly9_nH`gZfbney|z9Mb3XR*<&W=v
>> > z;`W{5z{Gg|^nnTG+n;!0`};oe@v#ReaefXl*>1p__d4x6&`yn$v_-bxA@6>JFu7iX
>> > zccvuoye+@?H5uAGynhtlBgNpYH-lgNYOvGy75H>t9LFh~ms2?(=f@Z;*o#%(qbOdl
>> > zs;WNK@ALWnsqu6=ol9HkJL$L5@1(z+{viF0Y&M(AnxnaVK5yo&{9E~V@*fn;f(5T_
>> > zc-`54Yx|w;4{p46> > zPki}<4|tyU@LocQL}a26uOP{?$K&yOy_rmAJX6ZNoVk~IJM(_#YvbcnQ&Xj>d!^FO
>> > z&d$p__jcaidH>~CU%vP9+xPC>d;jgX-+S-9_uu>4`|pF!BO}F;TO+TGygBm4k*^ku
>> > zw{G2f<<^_GzWB;3ue|xnSKoZ|%`d|1s|ayAcb}UF3kUern28PB?;Pd`CvZB}4XjhF
>> > zM>vBwQYLQ*iIIHu5;#ni;%DK3H|Chjr0C>P`6d}`FhDH9Ky
>> > z+$cB8nTqQ32ZEX&GN_6;%o9PBWRC*Y?)HZxdUbi_Ty3>}zHwo#*}AxXseRcv+_iC~
>> > zH#af)T>kXbbYaGvE1j|C%V#SKn^&K|cKwB|?;Ggt>rV_MQ-kTD%y9O^$VqpwJ2ZW8
>> > z!06avCYi&7Tsr%i5?hy^Xe^#}6*)N3o#wL79vpBK`|(p7S4J4w!-HLV`^6Y_nH%(|
>> > z+pcNCk>c#)Qf_bX@u=sHFUa^Q#$odK6I{^>k3YrXWx3iM)WtP~Yxjdbb~#rMP8=O`
>> > zr|viL!RhVGE&(RT#+Ah-*_A|g!QFCu4Ej--gd;AS_8!sW+w9@e?-54(V|0(nkzuJH
>> > z*5}AbHI6c6{~qz9ZhvS14;(ei^#;S=F@yK%hwNj;;pkx-9;KKA^YP;icCGN(F`j=s
>> > z`Uhg~xcGL(b3nJa^weT+We-xvQ{>?R@ofrYC`8oMAS_R?jIk6IbmX=dEgJ?wH;cHc
>> > z9kDv<2gexn=rBAyE*voqcCvN!Lxb;_u|*iMXNvHH(jWA@8%u8fe> > z=!VD>6L{*eRsE={xDstXDWQi4>%P?sp=Ta3Pb)aSi{s*{W&Edx%C)DD%4ZDpr@asy
>> > zGo@z_8|rXih9etSo+Z4$y;=NwXmz&GkGmz>OUugMR$lq$zx((9;aC6TfBMhA_Up=j
>> > z`LF-&zyH>6|BwIqt>01i25ekW_lEq&Z>oEPe)soucR4T2xGSXYuI!Zss3h%^1O4mY
>> > z__=@l^Z(?Z{> > zAN<3w{{A2Q;UE3+pZw|n`k8<9vtRqx;Yirqin+%QN88MmbWdwns&FJVSU=A;{>9mk
>> > zef;H5?Ea> > z%3DA3_TPBtZ~m>n?V9jM-~F-oe(l$P<2OJ5g}?K~AODHJ`@U<> > zlwyDUz|l|qKX<$U`fCwmxV#o43mbSM?N7IK~M5*mG!virTr
>> > zJeYqX>p#gP7jx#5OlCl3`@iz>qTsN#_po1i68^66t{jW|ZG13Ne&7e+_?#OVKl-j4
>> > z3t#&3VXxMXr;h8{!pxo;4@$%WSZ0bbxf+ia&I#W=0e|ehJrRHMrw$AGvtMhtIe^8z
>> > zJMp8$eB-d*hg}wq)XzUGW)H&n`eA}@cnl=n0Qo4{@%mBZ_PoK+xpC#Am> > zK

Re: [PATCH] brcm: add CLM BLOB files for Luxul devices

2023-06-12 Thread Rip Route
The files were compiled from source obtained through Luxul's contract
manufacturer of these devices.

dan


On Mon, Jun 12, 2023 at 6:29 AM Josh Boyer  wrote:
>
> On Thu, Jun 1, 2023 at 1:31 PM Dan Haab  wrote:
> >
> > From: Dan Haab 
> >
> > Add per-device regulatory configuration files for complete channel support 
> > and
> > maximum transmission power per regulatory domain.
>
> Where did you get these files from?  Given that they're likely from
> Broadcom, we'd expect a Broadcom Signed-off-by or review at least.
>
> josh
>
> > Signed-off-by: Dan Haab 
> > ---
> >  WHENCE  |  15 +++
> >  ...rcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob | Bin 0 -> 28224 bytes
> >  ...rcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob | Bin 0 -> 34368 bytes
> >  3 files changed, 15 insertions(+)
> >  create mode 100644 brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
> >  create mode 100644 brcm/brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
> >
> > diff --git a/WHENCE b/WHENCE
> > index 32d71481..d3fc870d 100644
> > --- a/WHENCE
> > +++ b/WHENCE
> > @@ -2630,6 +2630,21 @@ File: brcm/brcmfmac4371-pcie.bin
> >
> >  Licence: Redistributable. See LICENCE.broadcom_bcm43xx for details.
> >
> > +File: brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
> > +File: brcm/brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
> > +Link: brcm/brcmfmac4366c-pcie.luxul,xwr-3150-v1.clm_blob -> 
> > brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
> > +
> > +Licence: Redistributable.
> > +
> > +CLM (Country Locale Matrix) BLOB files contain regulatory configuration 
> > data.
> > +It's to be parsed and used by a wireless driver.
> > +
> > +Permission is hereby granted to use and redistribute those files as 
> > required.
> > +
> > +These firmware files are distributed in the hope that they will be useful, 
> > but
> > +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
> > or
> > +FITNESS FOR A PARTICULAR PURPOSE.
> > +
> >  File: brcm/brcmfmac4373.bin
> >  File: cypress/cyfmac43012-sdio.bin
> >  Link: brcm/brcmfmac43012-sdio.bin -> ../cypress/cyfmac43012-sdio.bin
> > diff --git a/brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob 
> > b/brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
> > new file mode 100644
> > index 
> > ..32ca36d7df48ecc5e899e89da347e16a8bcfdcb4
> > GIT binary patch
> > literal 28224
> > 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

Re: [PATCH] brcm: add CLM BLOB files for Luxul devices

2023-06-12 Thread Josh Boyer
On Thu, Jun 1, 2023 at 1:31 PM Dan Haab  wrote:
>
> From: Dan Haab 
>
> Add per-device regulatory configuration files for complete channel support and
> maximum transmission power per regulatory domain.

Where did you get these files from?  Given that they're likely from
Broadcom, we'd expect a Broadcom Signed-off-by or review at least.

josh

> Signed-off-by: Dan Haab 
> ---
>  WHENCE  |  15 +++
>  ...rcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob | Bin 0 -> 28224 bytes
>  ...rcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob | Bin 0 -> 34368 bytes
>  3 files changed, 15 insertions(+)
>  create mode 100644 brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
>  create mode 100644 brcm/brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
>
> diff --git a/WHENCE b/WHENCE
> index 32d71481..d3fc870d 100644
> --- a/WHENCE
> +++ b/WHENCE
> @@ -2630,6 +2630,21 @@ File: brcm/brcmfmac4371-pcie.bin
>
>  Licence: Redistributable. See LICENCE.broadcom_bcm43xx for details.
>
> +File: brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
> +File: brcm/brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
> +Link: brcm/brcmfmac4366c-pcie.luxul,xwr-3150-v1.clm_blob -> 
> brcmfmac4366c-pcie.luxul,xwr-3100-v1.clm_blob
> +
> +Licence: Redistributable.
> +
> +CLM (Country Locale Matrix) BLOB files contain regulatory configuration data.
> +It's to be parsed and used by a wireless driver.
> +
> +Permission is hereby granted to use and redistribute those files as required.
> +
> +These firmware files are distributed in the hope that they will be useful, 
> but
> +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> +FITNESS FOR A PARTICULAR PURPOSE.
> +
>  File: brcm/brcmfmac4373.bin
>  File: cypress/cyfmac43012-sdio.bin
>  Link: brcm/brcmfmac43012-sdio.bin -> ../cypress/cyfmac43012-sdio.bin
> diff --git a/brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob 
> b/brcm/brcmfmac4366c-pcie.luxul,xap-1610-v1.clm_blob
> new file mode 100644
> index 
> ..32ca36d7df48ecc5e899e89da347e16a8bcfdcb4
> GIT binary patch
> literal 28224
> zcmeHwYkV8ob>E#kcODoF9y6E=5CBOKAP7PfNr7C51i>LRgg_FcKnNlr3Zkf$mf`Xz
> zY3((uDz3Usw(EE;uQ!|Rw#{bkI_cU;wsq??w$t>Twt2X1+UC(m(mL-)`=KBEvES5l
> zXD}c|Qd&wYIZkZ+eh}{5x%WK(=iGDeKw!CczHB0dw9PO65(l3c-t5Kt(8~zDW=&mW
> zP4+V3n!x8q<+oSa_1W6$KxMu)kB|=YX2vIT<2ly9_nH`gZfbney|z9Mb3XR*<&W=v
> z;`W{5z{Gg|^nnTG+n;!0`};oe@v#ReaefXl*>1p__d4x6&`yn$v_-bxA@6>JFu7iX
> zccvuoye+@?H5uAGynhtlBgNpYH-lgNYOvGy75H>t9LFh~ms2?(=f@Z;*o#%(qbOdl
> zs;WNK@ALWnsqu6=ol9HkJL$L5@1(z+{viF0Y&M(AnxnaVK5yo&{9E~V@*fn;f(5T_
> zc-`54Yx|w;4{p46 zPki}<4|tyU@LocQL}a26uOP{?$K&yOy_rmAJX6ZNoVk~IJM(_#YvbcnQ&Xj>d!^FO
> z&d$p__jcaidH>~CU%vP9+xPC>d;jgX-+S-9_uu>4`|pF!BO}F;TO+TGygBm4k*^ku
> zw{G2f<<^_GzWB;3ue|xnSKoZ|%`d|1s|ayAcb}UF3kUern28PB?;Pd`CvZB}4XjhF
> zM>vBwQYLQ*iIIHu5;#ni;%DK3H|Chjr0C>P`6d}`FhDH9Ky
> z+$cB8nTqQ32ZEX&GN_6;%o9PBWRC*Y?)HZxdUbi_Ty3>}zHwo#*}AxXseRcv+_iC~
> zH#af)T>kXbbYaGvE1j|C%V#SKn^&K|cKwB|?;Ggt>rV_MQ-kTD%y9O^$VqpwJ2ZW8
> z!06avCYi&7Tsr%i5?hy^Xe^#}6*)N3o#wL79vpBK`|(p7S4J4w!-HLV`^6Y_nH%(|
> z+pcNCk>c#)Qf_bX@u=sHFUa^Q#$odK6I{^>k3YrXWx3iM)WtP~Yxjdbb~#rMP8=O`
> zr|viL!RhVGE&(RT#+Ah-*_A|g!QFCu4Ej--gd;AS_8!sW+w9@e?-54(V|0(nkzuJH
> z*5}AbHI6c6{~qz9ZhvS14;(ei^#;S=F@yK%hwNj;;pkx-9;KKA^YP;icCGN(F`j=s
> z`Uhg~xcGL(b3nJa^weT+We-xvQ{>?R@ofrYC`8oMAS_R?jIk6IbmX=dEgJ?wH;cHc
> z9kDv<2gexn=rBAyE*voqcCvN!Lxb;_u|*iMXNvHH(jWA@8%u8fe z=!VD>6L{*eRsE={xDstXDWQi4>%P?sp=Ta3Pb)aSi{s*{W&Edx%C)DD%4ZDpr@asy
> zGo@z_8|rXih9etSo+Z4$y;=NwXmz&GkGmz>OUugMR$lq$zx((9;aC6TfBMhA_Up=j
> z`LF-&zyH>6|BwIqt>01i25ekW_lEq&Z>oEPe)soucR4T2xGSXYuI!Zss3h%^1O4mY
> z__=@l^Z(?Z{ zAN<3w{{A2Q;UE3+pZw|n`k8<9vtRqx;Yirqin+%QN88MmbWdwns&FJVSU=A;{>9mk
> zef;H5?Ea z%3DA3_TPBtZ~m>n?V9jM-~F-oe(l$P<2OJ5g}?K~AODHJ`@U< zlwyDUz|l|qKX<$U`fCwmxV#o43mbSM?N7IK~M5*mG!virTr
> zJeYqX>p#gP7jx#5OlCl3`@iz>qTsN#_po1i68^66t{jW|ZG13Ne&7e+_?#OVKl-j4
> z3t#&3VXxMXr;h8{!pxo;4@$%WSZ0bbxf+ia&I#W=0e|ehJrRHMrw$AGvtMhtIe^8z
> zJMp8$eB-d*hg}wq)XzUGW)H&n`eA}@cnl=n0Qo4{@%mBZ_PoK+xpC#Am zKg=91 z*B{qC?!>(lY9~|fFD#y=>5eJzVbAUfzE=xxV}vxPQesSoA$h-+Zqc
> zevE4P_~qbXSJ%(GwY$3xunI5xFgUw|SV3 zdsE$PMt1Eihb?o8bJ$C*1
> za1sx$^=xDJVO8Q&EoP5N?6A3yO6X6$+-x0o{G)yMC^=mWe|OZd$1K9$dRz;;R&=A|
> zX(Ic0i}mpjc>cnkOO#S@EmB+Dp?P zF_Zc6jyaxrntY6X_~DiJ!DZ7$^pl*69y3w?nQa z!e@U){-nn@N0pkv(XqX zdoJ8>@ju&#H{YvyzSiUBuY+aFz@vhOt;Yj<9zA+-PVXP^FgDr4Y#wqDa5(4>Pd%`|
> zcQ@&K!R2BvHCUV-brYGJxY#km!{q#471w!K`XP^m4*O&e1%Gj>xM#A1er%#HnB7g|
> zQF#7tsW+ebBblR&`<-6oerMH}hZFcmKXqcz|EN{l@d}>f*9zZVUx4}0I^pS-0nc{P
> z&OgcWRXA={esH_+*vI~E!hh_E?h0WYmBk)b@*K4n``$?r`(haTLfBE(dF&PZQE+pe
> zef?2`9=D`AO6q4{BEbJiz0dVy#MiiR4SULJxYHq3k*A2l6*0UbdsdWi#T(wci7o6Y
> zV0WkhL)mo6Q&sm-AR8$BBKB-c;pe+lg-zsHN8wi`Zd3KF?{zPtaD($Sq;O3IB4JGK
> za|Xd&jc^#`GvEtton{)EYlQ0v$*p0IM}#v3EHDX(XHgB;{NX9h<8&j@1Rb!)lEXQ_
> zXVf3Ix_5Ys4_ks~JQxP;84KRRoHNLsTSDP7@sy=-Ne!3%;Sn|$q!BP~k#Jq`xU!8C
> zkOIsoAnvXJ|H=10eCLMUi+~E7jtXgLZbOqWR<>eH1p`A9cXT9t0fjA3xBwD?x*qs{
> z$|P$@mSJQ~$ubQNXZ@aR#zW+SfwG3Dm_m~&k2!`)W1dA5RZNdS@&P;&5UoCMHRF{@
> zp5sP1