Closed Bug 1009396 Opened 7 years ago Closed 7 years ago

[Flame] build wifi pronto driver from sources

Categories

(Firefox OS Graveyard :: Vendcom, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:-, b2g-v2.0 fixed, b2g-v2.1 fixed)

RESOLVED FIXED
2.0 S4 (20june)
blocking-b2g -
Tracking Status
b2g-v2.0 --- fixed
b2g-v2.1 --- fixed

People

(Reporter: gerard-majax, Assigned: gerard-majax)

References

Details

(Whiteboard: [systemsfe])

Attachments

(3 files, 3 obsolete files)

Looks like we have sources for the pronto wlan driver for the flame: https://www.codeaurora.org/cgit/external/wlan/prima/tree/Kconfig
Blocks: 1009139
checking out this repo as vendor/qcom/opensource/wlan/prima, it gets integrated in the flame build. remote origin/master fails at building, however.
Once integrated, issuing |./build.sh out/target/product/flame/system/lib/modules/pronto/pronto_wlan.ko| produces a working kernel module:

> $ modinfo out/target/product/flame/system/lib/modules/pronto/pronto_wlan.ko 
> filename:       /home/alex/codaz/Mozilla/b2g/devices/Flame/B2G/out/target/product/flame/system/lib/modules/pronto/pronto_wlan.ko
> description:    WLAN HOST DEVICE DRIVER
> author:         Qualcomm Atheros, Inc.
> license:        Dual BSD/GPL
> depends:        
> vermagic:       3.4.0-perf-g71e70c6-00054-g30bdec6 SMP preempt mod_unload modversions ARMv7 
> parm:           ioctl_debug:int
> parm:           enable_dfs_chan_scan:int
> parm:           enable_11d:int
> parm:           country_code:charp

Once pushed to the device, rebooting, the driver loads correctly, and I can see networks.
The version provided with the Flame is based on 070a5a216081cb914e4ca475a62b70f3cc7f7e10, which is 3.2.3.172.
For some reason, I cannot connect to any network with those. No obvious error, just waiting for DHCP it seems.
Depends on: 1004195
Viral, it seems we are pretty close to be able to rebuild kernel module for WiFi and have it working properly.

Could we get some help from T2M on this ? That would make us really able to rebuild kernel as we want.
Flags: needinfo?(vwang)
Hi Alexandre,

I'm not so sure what the status now.
It looks like we can use wifi in comment 3 but can't in comment 5.
Any log and description you can help to provide?
I think we can have partner's support if we have clear question here.
Thanks :)
Flags: needinfo?(vwang)
(In reply to viral [:viralwang][5/14 - 5/20 business trip] from comment #7)
> Hi Alexandre,
> 
> I'm not so sure what the status now.
> It looks like we can use wifi in comment 3 but can't in comment 5.
> Any log and description you can help to provide?
> I think we can have partner's support if we have clear question here.
> Thanks :)

There is no inconcistency: in comment 3, I'm stating that the driver builds, and is loaded correctly on the system. I did this just before going to the office, so no time to go further. In comment 5, I tried to connect to the WiFi network I'm seeing, and it does not work.

Rebuilding a kernel using the same git commit as T2M to make sure vermagic is okay, I can reuse their prebuilt driver and it works.

In my testing, as far as I remember, I made sure to use the same version of the driver than their.
Flags: needinfo?(vwang)
To make it clear, my question is: can T2M provide help to make sure we can rebuild the wifi driver from sources and that it works ?

I'm on some nasty 1.3+ blocker, so really not have time to do more than quick hacking like: get the source, build, check it loads, try to use, see that it fails miserably.

FTR, I don't remember anything useful in the log.
So, checking out 070a5a216081cb914e4ca475a62b70f3cc7f7e10, which is tagged v3.2.3.172 from git://codeaurora.org/external/wlan/prima.

I've reused all other blobs from T2M v10E:
 - WCNSS_cfg.dat
 - WCNSS_qcom_cfg.ini
 - WCNSS_qcom_wlan_nv.bin

The last one is in the /persist partition.

The result when trying to load the driver is:

> <6>[  698.239867] wlan: loading driver v3.2.3.172
> <3>[  698.252275] wlan: [562:E :VOS] INFO: NV binary file version=2 Driver default NV version=2, continue...
> <3>[  698.252282] 
> <6>[  698.262239] DefaultCountry is 00
> <3>[  698.262268] wlan: [562:E :VOS] VOS set reg domain, invalid REG domain ID -1089248324
> <3>[  698.274052] wlan: [1213:E :PE ] processCfgDownloadReq: 782: <CFG> DNLD_RSP invalid length 5312 (exp 5232)
> <3>[  698.282682] wlan: [562:E :PE ] CheckParam: 664: Param id 17 not valid
> <3>[  698.289086] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 17
> <3>[  698.296795] wlan: [562:E :PE ] CheckParam: 664: Param id 14 not valid
> <3>[  698.303161] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 14
> <3>[  698.310974] wlan: [562:E :PE ] CheckParam: 664: Param id 77 not valid
> <3>[  698.317431] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 77
> <3>[  698.325092] wlan: [562:E :PE ] CheckParam: 664: Param id 91 not valid
> <3>[  698.331464] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 91
> <3>[  698.339226] wlan: [562:E :PE ] CheckParam: 664: Param id 145 not valid
> <3>[  698.345769] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 145
> <3>[  698.353513] wlan: [562:E :PE ] CheckParam: 664: Param id 69 not valid
> <3>[  698.359993] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 69
> <3>[  698.367690] wlan: [562:E :PE ] CheckParam: 664: Param id 36 not valid
> <3>[  698.374104] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 36
> <3>[  698.381812] wlan: [562:E :PE ] CheckParam: 664: Param id 205 not valid
> <3>[  698.388337] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 205
> <3>[  698.396164] wlan: [562:E :PE ] CheckParam: 664: Param id 104 not valid
> <3>[  698.402637] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 104
> <3>[  698.410506] wlan: [562:E :PE ] CheckParam: 664: Param id 102 not valid
> <3>[  698.416982] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 102
> <3>[  698.424807] wlan: [562:E :PE ] CheckParam: 664: Param id 226 not valid
> <3>[  698.431298] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 226
> <3>[  698.439133] wlan: [562:E :PE ] CheckParam: 664: Param id 47 not valid
> <3>[  698.445557] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 47
> <3>[  698.453254] wlan: [562:E :PE ] CheckParam: 664: Param id 204 not valid
> <3>[  698.459812] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 204
> <3>[  698.467675] wlan: [562:E :PE ] CheckParam: 664: Param id 59 not valid
> <3>[  698.474019] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 59
> <3>[  698.481725] wlan: [562:E :PE ] CheckParam: 664: Param id 40 not valid
> <3>[  698.488169] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 40
> <3>[  698.495905] wlan: [562:E :PE ] CheckParam: 664: Param id 5 not valid
> <3>[  698.502204] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 5
> <3>[  698.509913] wlan: [562:E :PE ] CheckParam: 664: Param id 208 not valid
> <3>[  698.516379] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 208
> <3>[  698.524194] wlan: [562:E :PE ] CheckParam: 664: Param id 83 not valid
> <3>[  698.530605] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 83
> <3>[  698.538358] wlan: [562:E :PE ] CheckParam: 664: Param id 259 not valid
> <3>[  698.544931] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 259
> <3>[  698.552648] wlan: [562:E :PE ] CheckParam: 664: Param id 210 not valid
> <3>[  698.559215] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 210
> <3>[  698.566996] wlan: [562:E :PE ] CheckParam: 664: Param id 215 not valid
> <3>[  698.573471] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 215
> <3>[  698.581311] wlan: [562:E :PE ] CheckParam: 664: Param id 29 not valid
> <3>[  698.587730] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 29
> <3>[  698.595552] wlan: [562:E :PE ] CheckParam: 664: Param id 28 not valid
> <3>[  698.601859] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 28
> <3>[  698.609780] wlan: [562:E :PE ] CheckParam: 664: Param id 30 not valid
> <3>[  698.616121] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 30
> <3>[  698.623901] wlan: [562:E :PE ] CheckParam: 664: Param id 31 not valid
> <3>[  698.630219] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 31
> <3>[  698.637947] wlan: [562:E :PE ] CheckParam: 664: Param id 212 not valid
> <3>[  698.644553] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 212
> <3>[  698.652227] wlan: [562:E :PE ] CheckParam: 664: Param id 289 not valid
> <3>[  698.658787] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 289
> <3>[  698.666560] wlan: [562:E :PE ] CheckParam: 664: Param id 260 not valid
> <3>[  698.673037] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 260
> <3>[  698.680877] wlan: [562:E :PE ] CheckParam: 664: Param id 290 not valid
> <3>[  698.687381] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 290
> <3>[  698.695206] wlan: [562:E :PE ] CheckParam: 664: Param id 291 not valid
> <3>[  698.701682] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 291
> <3>[  698.709557] wlan: [562:E :PE ] CheckParam: 664: Param id 297 not valid
> <3>[  698.716103] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 297
> <3>[  698.723848] wlan: [562:E :PE ] CheckParam: 664: Param id 268 not valid
> <3>[  698.730329] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 268
> <3>[  698.738193] wlan: [562:E :PE ] CheckParam: 664: Param id 269 not valid
> <3>[  698.744713] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 269
> <3>[  698.752491] wlan: [562:E :PE ] CheckParam: 664: Param id 270 not valid
> <3>[  698.759056] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 270
> <3>[  698.766830] wlan: [562:E :PE ] CheckParam: 664: Param id 272 not valid
> <3>[  698.773300] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 272
> <3>[  698.781154] wlan: [562:E :PE ] CheckParam: 664: Param id 276 not valid
> <3>[  698.787642] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 276
> <3>[  698.795477] wlan: [562:E :PE ] CheckParam: 664: Param id 277 not valid
> <3>[  698.801943] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 277
> <3>[  698.809826] wlan: [562:E :PE ] CheckParam: 664: Param id 279 not valid
> <3>[  698.816292] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 279
> <3>[  698.824108] wlan: [562:E :PE ] CheckParam: 664: Param id 278 not valid
> <3>[  698.830591] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 278
> <3>[  698.838432] wlan: [562:E :PE ] CheckParam: 664: Param id 280 not valid
> <3>[  698.844984] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 280
> <3>[  698.852738] wlan: [562:E :PE ] CheckParam: 664: Param id 32 not valid
> <3>[  698.859233] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 32
> <3>[  698.866925] wlan: [562:E :PE ] CheckParam: 664: Param id 282 not valid
> <3>[  698.873402] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 282
> <3>[  698.881241] wlan: [562:E :PE ] CheckParam: 664: Param id 274 not valid
> <3>[  698.887730] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 274
> <3>[  698.895560] wlan: [562:E :PE ] CheckParam: 664: Param id 275 not valid
> <3>[  698.902030] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 275
> <3>[  698.909910] wlan: [562:E :PE ] CheckParam: 664: Param id 287 not valid
> <3>[  698.916387] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 287
> <3>[  698.924196] wlan: [562:E :PE ] CheckParam: 664: Param id 17 not valid
> <3>[  698.930589] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 17
> <3>[  698.938344] wlan: [562:E :PE ] CheckParam: 664: Param id 14 not valid
> <3>[  698.944769] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 14
> <3>[  698.952469] wlan: [562:E :PE ] CheckParam: 664: Param id 77 not valid
> <3>[  698.958943] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 77
> <3>[  698.966644] wlan: [562:E :PE ] CheckParam: 664: Param id 69 not valid
> <3>[  698.973052] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 69
> <3>[  698.980815] wlan: [562:E :PE ] CheckParam: 664: Param id 287 not valid
> <3>[  698.987309] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 287
> <3>[  698.995131] wlan: [562:E :PE ] CheckParam: 664: Param id 288 not valid
> <3>[  699.001597] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 288
> <3>[  699.009504] wlan: [562:E :PE ] CheckParam: 664: Param id 271 not valid
> <3>[  699.015948] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 271
> <3>[  699.023763] wlan: [562:E :PE ] CheckParam: 664: Param id 206 not valid
> <3>[  699.030242] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 206
> <3>[  699.038087] wlan: [562:E :PE ] CheckParam: 664: Param id 292 not valid
> <3>[  699.044598] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 292
> <3>[  699.052383] wlan: [562:E :PE ] wlan_cfgGetInt: 348: Not valid cfg id 195
> <3>[  699.059124] wlan: [562:E :PE ] CheckParam: 664: Param id 195 not valid
> <3>[  699.065598] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 195
> <3>[  699.073387] wlan: [562:E :PE ] wlan_cfgGetInt: 348: Not valid cfg id 188
> <3>[  699.080106] wlan: [562:E :PE ] CheckParam: 664: Param id 188 not valid
> <3>[  699.086616] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 188
> <3>[  699.094512] wlan: [562:E :PE ] wlan_cfgGetInt: 348: Not valid cfg id 189
> <3>[  699.101080] wlan: [562:E :PE ] CheckParam: 664: Param id 189 not valid
> <3>[  699.107641] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 189
> <3>[  699.115428] wlan: [562:E :PE ] CheckParam: 664: Param id 203 not valid
> <3>[  699.121908] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 203
> <3>[  699.129747] wlan: [562:E :PE ] CheckParam: 664: Param id 156 not valid
> <3>[  699.136255] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 156
> <3>[  699.144088] wlan: [562:E :PE ] wlan_cfgGetInt: 348: Not valid cfg id 157
> <3>[  699.150734] wlan: [562:E :PE ] CheckParam: 664: Param id 157 not valid
> <3>[  699.157431] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 157
> <3>[  699.165083] wlan: [562:E :PE ] CheckParam: 664: Param id 175 not valid
> <3>[  699.171659] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 175
> <3>[  699.179540] wlan: [562:E :PE ] CheckParam: 664: Param id 283 not valid
> <3>[  699.186024] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 283
> <3>[  699.193894] wlan: [562:E :PE ] CheckParam: 664: Param id 294 not valid
> <3>[  699.200338] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 294
> <3>[  699.208125] wlan: [562:E :PE ] CheckParam: 664: Param id 295 not valid
> <3>[  699.214558] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 295
> <3>[  699.222349] wlan: [562:E :PE ] CheckParam: 664: Param id 296 not valid
> <3>[  699.228880] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 296
> <3>[  699.236692] wlan: [562:E :PE ] CheckParam: 664: Param id 147 not valid
> <3>[  699.243176] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 147
> <3>[  699.251028] wlan: [562:E :PE ] CheckParam: 664: Param id 148 not valid
> <3>[  699.257601] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 148
> <3>[  699.265369] wlan: [562:E :PE ] CheckParam: 664: Param id 149 not valid
> <3>[  699.271822] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 149
> <3>[  699.279666] wlan: [562:E :PE ] CheckParam: 664: Param id 230 not valid
> <3>[  699.286173] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 230
> <3>[  699.294001] wlan: [562:E :PE ] CheckParam: 664: Param id 298 not valid
> <3>[  699.300482] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 298
> <3>[  699.308357] wlan: [562:E :PE ] CheckParam: 664: Param id 299 not valid
> <3>[  699.314825] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 299
> <3>[  699.322613] wlan: [562:E :PE ] CheckParam: 664: Param id 300 not valid
> <3>[  699.329148] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 300
> <3>[  699.336960] wlan: [562:E :PE ] CheckParam: 664: Param id 301 not vali> 
> <3>[  699.343435] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 301
> <3>[  699.351324] wlan: [562:E :PE ] CheckParam: 664: Param id 302 not valid
> <3>[  699.357826] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 302
> <3>[  699.365604] wlan: [562:E :PE ] CheckParam: 664: Param id 304 not valid
> <3>[  699.372081] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 304
> <3>[  699.379925] wlan: [562:E :PE ] CheckParam: 664: Param id 305 not valid
> <3>[  699.386425] wlan: [562:E :PE ] ProcSetReqInternal: 581: Check param failed, param 305
> <6>[  699.394253] wlan: Invalid MAC addresses in NV, autogenerated 00:0a:f5:f7:3a:98
> <3>[  699.394268] wlan: [562:E :PE ] cfgSetStrNotify: 513: Invalid cfg id 0
> <3>[  699.400641] wlan: [562:E :HDD] hdd_wlan_startup: Failed to set MAC Address. HALStatus is 00002601 [x00000a29]
> <3>[  699.413065] wlan: [26:E :CTL] WCTS_NotifyCallback: received SMD_EVENT_REOPEN_READY from SMD
> <3>[  699.477570] wlan: [562:F :HDD] hdd_driver_init: WLAN Driver Initialization failed
> <3>[  699.485226] wlan: driver load failure
Attached patch prima.patchSplinter Review
Viral, I got to get a working custom built wifi driver. It's currently corrected to the Mozilla Guest network of the office \o/.

So, I checked out 65c99103b43a779c41faa774779d318a93be2644 and I had to add one missing include. The resulting driver works but requires NV3. T2M seems to provide a NV2, but when I built the very same version, as documented in the previous comment, it does not work.

This makes me thinking that T2M probably has some local modifications, so it would be good that we get the source for this, too.
Hi Alexandre,

Sorry for the late reply.
I have not in office this week and have limited network bandwidth here :(

Please let me clarify the information again.
It looks like you can't use the latest CAF code to fit v10E for wifi, but it works if you check out the earlier commit 65c99103b43a779c41faa774779d318a93be2644. One possible reason is that partner didn't update their code to us, is that correct?

by the way, partner already provide v10F-3 few days ago, will it help?
Flags: needinfo?(vwang)
(In reply to viral [:viralwang][5/14 - 5/20 business trip] from comment #12)
> Hi Alexandre,
> 
> Sorry for the late reply.
> I have not in office this week and have limited network bandwidth here :(
> 
> Please let me clarify the information again.
> It looks like you can't use the latest CAF code to fit v10E for wifi, but it
> works if you check out the earlier commit
> 65c99103b43a779c41faa774779d318a93be2644. One possible reason is that
> partner didn't update their code to us, is that correct?
> 
> by the way, partner already provide v10F-3 few days ago, will it help?

No problem :). So let me re-explain clearly, because it seems my point was not clear enough:
 - I'm building my own kernel from t2m/foxfone-one master branch
 - I'm using prima/pronto wifi driver sources from CAF

The current status of this setup is:
 - building the caf/master driver fails because the kernel seems to lack some wcnss-related channel avoiding primitive (we get a warning treated as an error for an implicit declaration, checking the kernel source shows that this is not present)
 - building the tag matching the driver version number provided in v10E image works, but the resulting driver does not load, as in comment 10.
 - getting a more recent version without the wcnss-related channel avoiding feature fails becaues of some missing include: once fixed in the makefile, the driver build successfully, loads perfectly and I can use it without any issue at all
Flags: needinfo?(vwang)
Just send the mail to partner for more information.
Can't reach him on bugzilla so far :(
Flags: needinfo?(vwang)
(In reply to viral [:viralwang] from comment #14)
> Just send the mail to partner for more information.
> Can't reach him on bugzilla so far :(

I've also noticed divergences regarding the nv part of WiFi driver, the one being burned into the persist.img. Could we get infos regarding this?
Flags: needinfo?(vwang)
(In reply to Alexandre LISSY :gerard-majax from comment #15)
> (In reply to viral [:viralwang] from comment #14)
> > Just send the mail to partner for more information.
> > Can't reach him on bugzilla so far :(
> 
> I've also noticed divergences regarding the nv part of WiFi driver, the one
> being burned into the persist.img. Could we get infos regarding this?

Yes, I'm still waiting for partner's reply.
Keep ni to notice me
Flags: needinfo?(vwang)
Keep ni to notice me
Flags: needinfo?(vwang)
Flags: needinfo?(vchen)
we already request partner to provide their source code when they release their base image.
The latest base image is v10G-2 and we expect we can have their source code soon (maybe today)
Flags: needinfo?(vwang)
(In reply to viral [:viralwang] from comment #18)
> we already request partner to provide their source code when they release
> their base image.
> The latest base image is v10G-2 and we expect we can have their source code
> soon (maybe today)

Either they are using a forked version of the WiFi driver, or their kernel is incomplete: 0e2d3ca688bfd757b96176c9f21685f15e9c767e introduces the missing code to build the pronto wlan driver from master.
Please find attached a link to the github pull request that removes the use of  blob. This should land when we land bits to start building the driver.

Maybe we need some eyes from partners on this?
Assignee: nobody → lissyx+mozillians
Attachment #8430023 - Flags: review?(mwu)
Flags: needinfo?(vwang)
(In reply to Alexandre LISSY :gerard-majax from comment #20)
> Created attachment 8430023 [details] [review]
> Link to Github https://github.com/mozilla-b2g/device-flame/pull/26
> 
> Please find attached a link to the github pull request that removes the use
> of  blob. This should land when we land bits to start building the driver.
> 
> Maybe we need some eyes from partners on this?

There are definitively some discrepencies, pushing the .dat and .ini from those repos makes the driver unable to properly load:

> <6>[   68.130993] wlan: loading driver v3.2.3.208a.b2g
> <3>[   68.140504] wlan: [566:E :VOS] INFO: NV binary file version=2 Driver default NV version=3, continue...
> <3>[   68.149165] wlan: [566:E :VOS] !!!WARNING: Default NV is NV3 CH144 BIN is NV2, NV2 contents will be used!!!
> <6>[   68.168581] DefaultCountry is 00
> <3>[   68.172256] wlan: [1153:F :HDD] hdd_get_cfg_file_size: CFG download failed
> <3>[   68.183203] wlan: [1153:F :HDD] hdd_get_cfg_file_size: CFG download failed
> <3>[   68.189197] wlan: [1153:E :WDA] Error: Cannot retrieve CFG file image from vOSS. [size= 0 bytes]
> <3>[   68.198353] wlan: [1153:E :WDA] WDA Config Download failure
> <3>[   68.203530] wlan: [1153:E :VOS] VosMCThread: Issue Processing WDA message

The driver could load properly when re-using: WCNSS_cfg.dat, WCNSS_qcom_cfg.ini
Status: NEW → ASSIGNED
Attachment #8430023 - Flags: review?(mwu) → review+
Whiteboard: [systemsfe]
Hi Alexandre,

maybe we could refer the device/qcom/msm8610/msm8610.mk and add following files in flame.mk?

PRODUCT_COPY_FILES += \
    device/qcom/msm8610/WCNSS_cfg.dat:system/etc/firmware/wlan/prima/WCNSS_cfg.dat \
    device/qcom/msm8610/WCNSS_qcom_cfg.ini:system/etc/wifi/WCNSS_qcom_cfg.ini \
    device/qcom/msm8610/WCNSS_qcom_wlan_nv.bin:persist/WCNSS_qcom_wlan_nv.bin
Flags: needinfo?(vwang)
(In reply to viral [:viralwang] from comment #22)
> Hi Alexandre,
> 
> maybe we could refer the device/qcom/msm8610/msm8610.mk and add following
> files in flame.mk?
> 
> PRODUCT_COPY_FILES += \
>    
> device/qcom/msm8610/WCNSS_cfg.dat:system/etc/firmware/wlan/prima/WCNSS_cfg.
> dat \
>    
> device/qcom/msm8610/WCNSS_qcom_cfg.ini:system/etc/wifi/WCNSS_qcom_cfg.ini \
>     device/qcom/msm8610/WCNSS_qcom_wlan_nv.bin:persist/WCNSS_qcom_wlan_nv.bin

Maybe. But those files are provided as part of the sources of the driver. I'd prefer that we get a clear explanation why I can use those sources but that the firmware_bin/ files are not working properly. This may hide something.
Flags: needinfo?(vwang)
(In reply to viral [:viralwang] from comment #22)
> Hi Alexandre,
> 
> maybe we could refer the device/qcom/msm8610/msm8610.mk and add following
> files in flame.mk?
> 
> PRODUCT_COPY_FILES += \
>    
> device/qcom/msm8610/WCNSS_cfg.dat:system/etc/firmware/wlan/prima/WCNSS_cfg.
> dat \
>    
> device/qcom/msm8610/WCNSS_qcom_cfg.ini:system/etc/wifi/WCNSS_qcom_cfg.ini \
>     device/qcom/msm8610/WCNSS_qcom_wlan_nv.bin:persist/WCNSS_qcom_wlan_nv.bin

My point being that since the file provided with the sources are not working, I'm wondering if those used by T2M are not modified in some way that may render them non distribuable by us.
I'm guessing partner can't build WCNSS_cfg.dat and WCNSS_qcom_cfg.ini in their side also.
WCNSS_cfg.dat is the wireless firmware include part of confidential codes can not be opened.
I think that's why we have to copy it from device/qcom/msm8610
Flags: needinfo?(vwang)
(In reply to viral [:viralwang] from comment #25)
> I'm guessing partner can't build WCNSS_cfg.dat and WCNSS_qcom_cfg.ini in
> their side also.
> WCNSS_cfg.dat is the wireless firmware include part of confidential codes
> can not be opened.
> I think that's why we have to copy it from device/qcom/msm8610

Do you have any proof of this? Because what I see is https://www.codeaurora.org/cgit/external/wlan/prima/tree/firmware_bin/ contains those files.

So it seems to be open. Can we really check with T2M, please?
Flags: needinfo?(vwang)
(In reply to Alexandre LISSY :gerard-majax from comment #26)
> (In reply to viral [:viralwang] from comment #25)
> > I'm guessing partner can't build WCNSS_cfg.dat and WCNSS_qcom_cfg.ini in
> > their side also.
> > WCNSS_cfg.dat is the wireless firmware include part of confidential codes
> > can not be opened.
> > I think that's why we have to copy it from device/qcom/msm8610
> 
> Do you have any proof of this? Because what I see is
> https://www.codeaurora.org/cgit/external/wlan/prima/tree/firmware_bin/
> contains those files.
> 
> So it seems to be open. Can we really check with T2M, please?

Hi Alexandre -

Sorry, my bad, I already checked with T2M but till now i get no response, I will try to directly call T2M to clarify this tomorrow

Thanks
Flags: needinfo?(vchen)
Hi Vance,

Need your help to confirm with partner.
Thanks.
Flags: needinfo?(vwang)
Attached file Manifest update
Comment on attachment 8436763 [details] [review]
Manifest update

Adding the sources from CAf to build the pronto driver. Until further notice, we will still needs some blobs (.ini and .dat file), but at least we can rebuild the kernel module.

I'm using v3.2.3.207 because this seems to be the last one building and properly. Newer releases depends on undefined kernel symbols (wcnss_get_wlan_unsafe_channel, wcnss_set_wlan_unsafe_channel). And v3.2.3.208a does not builds because of the "a" present in the version numbering.

We need to copy the wlan_nv2.h file for build to succeed. The resuling driver built works very well on my Flame.
Attachment #8436763 - Attachment description: Manife → Manifest update
Attachment #8436763 - Flags: review?(mwu)
(In reply to Alexandre LISSY :gerard-majax from comment #29)
> Merged:
> https://github.com/mozilla-b2g/device-flame/commit/
> 1ffedc01d27e30e53392a1b61e09ed1fc80d259e

Reverted in https://github.com/mozilla-b2g/device-flame/commit/9971053a02fb1b2c574dbf9ddd9405f6b8ddc53a because we need to build the kernel module prior to remove it like this.
Carrying r+ from mwu. To apply after the manifest update landed AND we are successfully building the kernel.
Attachment #8430023 - Attachment is obsolete: true
Attachment #8436821 - Flags: review+
Both PR updated:
 - manifest PR to use the proper repo and revision
 - device PR to remove the use of another blob

Building the driver from this repo with this revision works, and we can at least use the WCNSS_cfg.dat provided:

> $ sha1sum firmware_bin/WCNSS_cfg.dat ../../../../../backup-flame/system/etc/firmware/wlan/prima/WCNSS_cfg.dat 
> 49cfc99caa21159a48c2bd4fcd2cb1b076e94e08  firmware_bin/WCNSS_cfg.dat
> 49cfc99caa21159a48c2bd4fcd2cb1b076e94e08  ../../../../../backup-flame/system/etc/firmware/wlan/prima/WCNSS_cfg.dat

Checked on my system, I can use WiFi.
Comment on attachment 8436763 [details] [review]
Manifest update

As usual, make sure there's a mirror on git.mozilla.org before merging.
Attachment #8436763 - Flags: review?(mwu) → review+
Depends on: 1023370
(In reply to Michael Wu [:mwu] from comment #35)
> Comment on attachment 8436763 [details] [review]
> Manifest update
> 
> As usual, make sure there's a mirror on git.mozilla.org before merging.

I've asked for it in bug 1023370 :)
Hi Alexandre,

I met the build error below, any suggestion for this?

device/qcom/common/dlkm/AndroidKernelModule.mk:118: *** KBUILD_TARGET=vendor_qcom_opensource_wlan_prima.  Stop.

> Build failed! <

Thanks.
Flags: needinfo?(lissyx+mozillians)
(In reply to viral [:viralwang] from comment #38)
> Hi Alexandre,
> 
> I met the build error below, any suggestion for this?
> 
> device/qcom/common/dlkm/AndroidKernelModule.mk:118: ***
> KBUILD_TARGET=vendor_qcom_opensource_wlan_prima.  Stop.
> 
> > Build failed! <
> 
> Thanks.

Can you provide a bit more logs?
Flags: needinfo?(lissyx+mozillians)
This b2g-inbound shows driver building properly: https://tbpl.mozilla.org/php/getParsedLog.php?id=41588754&tree=B2g-Inbound&full=1
Flags: needinfo?(vwang)
Here's the log https://copy.com/BTzryob3Xap9

I can pass the build if I remove <project name="platform/vendor/qcom-opensource/wlan/prima" path="vendor/qcom/opensource/wlan/prima" revision="ce18b47b4a4f93a581d672bbd5cb6d12fe796ca9"/> in manifest.xml

Once I add the repo back, I met the build error :(
Flags: needinfo?(vwang)
(In reply to viral [:viralwang] from comment #41)
> Here's the log https://copy.com/BTzryob3Xap9
> 
> I can pass the build if I remove <project
> name="platform/vendor/qcom-opensource/wlan/prima"
> path="vendor/qcom/opensource/wlan/prima"
> revision="ce18b47b4a4f93a581d672bbd5cb6d12fe796ca9"/> in manifest.xml
> 
> Once I add the repo back, I met the build error :(

This log is useless.

$ ./build.sh 2>build.err.log 1>build.out.log

And please avoid this website, upload the logs here.
Flags: needinfo?(vwang)
Attached file build.out.log (obsolete) —
Attached file build.err.log (obsolete) —
not sure if these logs can help.
pretty same as i provide in comment 41
Flags: needinfo?(vwang)
Thanks. I can't do much without knowing what happens.

Can you make sure your tree is clean? What's the output of ./repo diff ?
Flags: needinfo?(vwang)
That's my bad since I have some local change in build folder
So sorry for wasting your time :(
Flags: needinfo?(vwang)
Attachment #8439756 - Attachment is obsolete: true
Attachment #8439757 - Attachment is obsolete: true
Blocks: 1025034
This ended up half-landing in 2.0. The device directory change made it, but the manifest change didn't. This only affects full flashes on our side and caused bug 1036342. We should get this in to fix the bustage.
blocking-b2g: --- → 2.0?
(In reply to Michael Wu [:mwu] from comment #48)
> This ended up half-landing in 2.0. The device directory change made it, but
> the manifest change didn't. This only affects full flashes on our side and
> caused bug 1036342. We should get this in to fix the bustage.

can you please use the gaia 2.0 approval here ?
blocking-b2g: 2.0? → -
Comment on attachment 8436763 [details] [review]
Manifest update

Ok.
Attachment #8436763 - Flags: approval-gaia-v2.0?(bbajaj)
Attachment #8436763 - Flags: approval-gaia-v2.0?(bbajaj) → approval-gaia-v2.0+
Blocks: 1036342
No longer depends on: 1036342
You need to log in before you can comment on or make changes to this bug.