Commit Graph

71 Commits

Author SHA1 Message Date
Arturo Buzarra 401867f9e6 bluez5: use node status to trigger bluetooth initialization
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-06-24 18:08:54 +02:00
Arturo Buzarra ccc6f9c960 bluez5: ccimx8: use kernel module for bluetooth power management
Modify bluetooth init script to use kernel module to power on/off
the bluetooth chip instead of managing it directly from sysfs.

https://jira.digi.com/browse/DEL-6615

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-06-19 13:08:21 +02:00
Gabriel Valcazar 6e282ec51b bluez: rework bluetooth and bluetooth-init services
Soften the dependencies between the services and start the bluetooth stack
regardless of the existence of a bluetooth chip. Also, update the standby
script to reflect that there is no longer a strong dependency between the
services.

https://jira.digi.com/browse/DEL-6452

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-03-14 17:27:00 +01:00
Gabriel Valcazar d0b99c14fc bluez5: add patch to modify bluetooth.service's properties
These changes are needed in order to achieve a behavior similar to our
bluetooth initscripts'.

https://jira.digi.com/browse/DEL-6415

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-02-18 18:01:57 +01:00
Gabriel Valcazar ae1dfa5901 bluez5: add bluetooth-init.service
This service acts as a systemd replacement for our bluetooth-init initscript.
All it does is call the initscript before starting the bluetooth stack.

Since initscripts dissapear from /etc/init.d when disabling sysvinit, move the
script to /etc/. Also, include bluez5-init as a packagegroup-dey-bluetooth
dependency regardles of whether systemd is enabled or not.

https://jira.digi.com/browse/DEL-6415

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-02-18 18:01:57 +01:00
Arturo Buzarra d726049cb2 bluez5: add required tools to support Bluetooth Mesh
https://jira.digi.com/browse/DEL-6444

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-02-13 17:02:50 +01:00
Arturo Buzarra cf0165fa42 thud migration: bluez5: update recipe to version 5.50
https://jira.digi.com/browse/DEL-6412

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-02-04 16:52:43 +01:00
Jose Diaz de Grenu 45227325ee bluez_5.41: filter out CC8X machine
The point of this recipe is to provide the version of Bluez5 that was
certified. Thes certification does not apply to the  ConnectCore 8X, and the
recipe currently fails to build due to missing files. Hence filter out the
ConnectCore 8X from this recipe.

This clears the following warnings:

WARNING: meta-digi/meta-digi-dey/recipes-connectivity/bluez/bluez5_5.41.bb: Unable to get checksum for bluez5 SRC_URI entry bluetooth-init: file could not be found
WARNING: meta-digi/meta-digi-dey/recipes-connectivity/bluez/bluez5_5.41.bb: Unable to get checksum for bluez5 SRC_URI entry main.conf: file could not be found

Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
(cherry picked from commit bf9688fd08ac9e8823a5a253bdd1acacd1c0870e)
2019-02-04 12:18:13 +01:00
Arturo Buzarra e8b55724f9 sumo migration: bluez5: update recipe to version 5.48
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-01-11 13:26:44 +01:00
Gabriel Valcazar fa5004dafb Revert "ccimx8x: bluetooth-init: set 115200bps for SOMv1"
SOM v1 is not going to be released, so there's no need for a revision check.
Now that hw flow control is available, use it along with the highest baudrate
possible.

This reverts commit e4fbba3dde.

https://jira.digi.com/browse/DEL-6254
2018-11-21 09:49:13 +01:00
Alex Gonzalez dcab770db7 meta-digi-dey: bluez: Move IBS protocol to the last HCI UART entry.
This protocol will only work with the Digi vendor v4.9 kernels.

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2018-10-10 17:04:25 +02:00
Arturo Buzarra 4cdb24d0f5 bluez5: initialize BT in HCI_H4 mode and disable IBS and DEEP_SLEEP on firmware binary
Initialize Bluetooth chip in HCI_H4 mode and provide a firmware binary
with the IBS and DEEP_SLEEP mode disabled by default. Also this firmware
enables an internal clock required to maintain the system on low power modes.

https://jira.digi.com/browse/DEL-3711

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2018-10-10 12:00:33 +02:00
Alex Gonzalez 569c95511f meta-digi-dey: bluez5: Adapt bluetooth-init to mainline use
The Digi vendor kernel uses a dedicated HCI UART driver with support for
In-Band Sleep (IBS). This driver, when used with a QCA vendor ROME plugin
for hciattach, is able to upload a new firmware version to the Bluetooth
chipset, as well as set the MAC address directly on the firmware.

Mainline BSP uses the HCI H4 driver instead and the "qualcomm" hciattach
plugin which is not able to upload firmware to the QCA6564 chipset.

As such, when using mainline the chipset uses the ROM firmware and the
bluetooth init script has been adapted accordingly.

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2018-10-09 14:57:59 +02:00
Gonzalo Ruiz e4fbba3dde ccimx8x: bluetooth-init: set 115200bps for SOMv1
Set a lower baudrate of 115200bps for bluetooth on SOMv1 since
hardware flow control is not available.

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2018-09-12 16:36:36 +02:00
Hector Palacios 871da6f0d6 bluez5: add support for ConnectCore 8X on Bluez5-5.46
- The variable containing the list of patches has been renamed to a more
  generic prefix QCA65XX_.
- The ConnectCore 8X uses GPIO3_10 (394) for BT_EN.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://jira.digi.com/browse/DEL-5936
2018-06-04 12:16:59 +02:00
Arturo Buzarra dca3840b2f bluetooth-init: remove verification to BT firmware was loaded successfully
Firmware verification has a side effect in cc6ul sbc express platform
that affects to the bluetooth initialization.

https://jira.digi.com/browse/DEL-5802

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2018-03-08 13:10:38 +01:00
Arturo Buzarra 7c34990c01 bluetooth-init: verify if BT firmware was loaded successfully
Rarely the bluetooth firmware is not loaded properly and causes
errors in the configuration steps. This verification makes sure
the firmware was loaded and is functional, if not we start the
retry mechanism with the default baudrate to avoid the firmware
corruption in the upload process.

https://jira.digi.com/browse/DEL-3711

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2018-02-20 16:39:27 +01:00
Isaac Hermida d28d9c9ac5 bluez-5.46: enable health profile
Enable the support for health profile (HDP).
In bluez-5.46 the experimental flag has been removed and some of the previous
functionalities that it was including have been splitted, so they need to be
enabled independently.

Reference: https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=00af15150ecdbccc0255efc388b5e242aae14473

https://jira.digi.com/browse/DEL-5627

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2018-02-06 12:00:33 +01:00
Arturo Buzarra 314d4c82d6 meta-digi: fix scripts to remove undesired warning ignoring null bytes
Bash v4.4 or higher warns when discarding NULL bytes in command substitution
output. Remove these bytes to avoid the undesired warnings.

https://jira.digi.com/browse/DEL-5588

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2018-01-24 17:59:14 +01:00
Isaac Hermida bc3bf7b336 bluez5.inc: fix python3 core dependency for bluez5.41
Currently the default bluez5 package installed is bluez-5.46, but we need this
locally for compiling bluez-5.41 (the stack using in the bluetooth
certification process), so we need to locally apply the same fix ("fix python3
core dependency for testtools") for the testtools and its dependency with
python3-code instead of python3.

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2018-01-24 17:42:21 +01:00
Isaac Hermida 262e7a4b07 bluez5.46: remove testing flag
There is not need to specify the testing flag for bluez5 compilation. That flag
is new starting at bluez5.44, and in the past it was called experimental. In
the past it made sense to pass that flag to compile specific services, but most
of them has been migrated to standard features, and experimental has been
renamed to testing, but we do not need any of those testing features.

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2018-01-24 17:42:21 +01:00
Isaac Hermida df1876d663 bluez5.46: remove testing flag when starting the service
In bluez5.41 we needed to specify the "--experimental" flag when starting the
bluetooth service in order to use some specific features (see d434043447).
In bluez5.46 (in fact starting in bluez5.44) code was reorganized and now that
compilation option is called "--testing" but does not exist as flag, because
some of the "experimental" features has been mode to standard features, so
there is not need of indicating any extra flag when starting the service.

https://jira.digi.com/browse/DEL-5624

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2018-01-24 17:42:21 +01:00
Jose Diaz de Grenu f4aee6cecc bluez: add bluez 5.41
This is the stack covered by the Bluetooth certification. We will keep
it even though the newer bluez 5.46 will be used by default.

https://jira.digi.com/browse/DEL-5518

Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
2018-01-12 15:59:17 +01:00
Jose Diaz de Grenu 0a89a7134d rocko migration: bluez: adapt recipe
* 'experimental' has been renamed to 'testing' in Bluez 5.44
* Several patches (0004..0011) are now upstream and can be removed
* QCA specific patches have been refreshed

https://jira.digi.com/browse/DEL-5518

Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
2018-01-12 15:59:16 +01:00
Jose Diaz de Grenu 3903708d1c rocko migration: remove bluez4
https://jira.digi.com/browse/DEL-5518

Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
2018-01-12 15:59:16 +01:00
Sebastian Pastor c6b424d8cc bluetooth-init: if hciattach fails, reset the BT interface and retry
With these changes the hciattach mechanism is retried up to 5 times.
Signed-off-by: Sebastian Pastor <sebastian.pastor@digi.com>

https://jira.digi.com/browse/DEL-5343
https://jira.digi.com/browse/DEL-3711
2017-11-30 11:31:40 +01:00
Isaac Hermida 9053e0c318 bluez: Fix BR/EDR pairing for dual mode devices
Subset of commits to fix the pairing for dual mode devices. Main
commit that fixes is 2d3685252a21cda4b918ad1cc4dd0572bd5c6d3c, but some
previous commits are required as well.
"""
For dual mode devices we need to pass address type used in pairing
events to reply with correct one on agent reply. Otherwise reply for
BR/EDR pairing of dual mode device would use address type (which is
valid only for LE address) resulting in reply being ignored by kernel
and eventually pairing timeout.
"""

https://jira.digi.com/browse/DEL-5226

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2017-11-03 18:21:50 +01:00
Isaac Hermida e3e0230c6f bluez: reorder commits
For avoid compilation error due to platform specific patches, first apply
the common patches and later apply platform specific patches.

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2017-11-03 18:00:17 +01:00
Isaac Hermida 387381a586 bluez: squash specific qualcomm code
Create a multiple patch file with the original qualcomm code that adds
support for the qca6564 chip (hcitattach_rome)

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2017-11-03 17:58:24 +01:00
Arturo Buzarra f1dd256c5b bluez5: add support for ccimx6qpsbc platform
https://jira.digi.com/browse/DEL-5082

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2017-10-18 09:20:11 +02:00
Isaac Hermida 16a99ac65c bluez5: update gatt server example to master version
https://jira.digi.com/browse/DEL-5023

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2017-10-16 13:00:34 +02:00
Isaac Hermida d434043447 bluez5: start bluetooth daemon with experimental flag
The experimental flag is needed to run the GATT server application.

https://jira.digi.com/browse/DEL-5023

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2017-10-13 17:47:24 +02:00
Javier Viguera bb72455cd8 ccardimx28js removal: remove platform reference from bluez4 bootscript
https://jira.digi.com/browse/DEL-4771

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-08-04 17:38:30 +02:00
Isaac Hermida 4bc9e7cbd5 bluez5: port test-discovery and bluezutils.py to work with python3
https://jira.digi.com/browse/DEL-4039

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2017-08-04 10:47:17 +02:00
Javier Viguera 57365612da bluetooth-init: cosmetic, boot message in one line
Avoid splitting the boot script message in two different lines:

Starting bluetooth hardware: [OK]
done.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-05-23 12:06:34 +02:00
Javier Viguera 3fa939fdc3 Merge tag 'dey-2.2-r1.4' into dey-2.2/master
Tweaked to maintain some recipes' revisions to AUTOREV instead of the
fixed SHA1s from the tag.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-05-04 13:58:33 +02:00
Alex Gonzalez d776c9c282 meta-digi-dey: bluez5-5.41: ccimx6ul: Rewrite bluetooth-init
The following changes have been made to the bluetooth-init script:

* Remove "hciconfig hci0 up/down" and this is now deprecated and likely
to fail. We use the AutoEnable feature of bluetoothd for this now.
* Move setting the MAC address to hciattach instead of using hcitool.
* Remove resets performed by hcitool and hciconfig. The hciattach
application already performs a reset and that should suffice.
* Remove hciattach retries.

https://jira.digi.com/browse/DEL-3711
https://jira.digi.com/browse/DEL-3436
https://jira.digi.com/browse/DEL-3636
https://jira.digi.com/browse/DEL-3955

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2017-04-20 17:37:55 +02:00
Alex Gonzalez ae8e695cf7 meta-digi-dey: bluez5-5.41: ccim6ul: Modify hciattach
This commits adds patches to hciattach for the following:

* Strict flow control setting

  The hciattach application has a flow | noflow command line argument that is
  currently only applied on the first configuration of the uart port. The
  hciattach_rome plugin ignores this setting and assumes hardware flow
  control is always supported. This commits makes hciattach obey the user flow
  control indication.

* Modify hciattach_rome to set MAC address. The MAC address setting
  feature in the rome plugin now works with the command line specified
  MAC.

* Reduce verbosity. hciattach now accepts a "-v" verbose flag. By
  default verbose output it omitted.

https://jira.digi.com/browse/DEL-3711
https://jira.digi.com/browse/DEL-3436
https://jira.digi.com/browse/DEL-3636
https://jira.digi.com/browse/DEL-3955

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2017-04-20 17:37:49 +02:00
Alex Gonzalez 3ab6c6caa5 meta-digi-dey: Add bluetooth main configuration files
Configure bluetoothd to enable the controller automatically.

https://jira.digi.com/browse/DEL-3711
https://jira.digi.com/browse/DEL-3436
https://jira.digi.com/browse/DEL-3636
https://jira.digi.com/browse/DEL-3955

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2017-04-20 17:37:43 +02:00
David Escalona 5a2b538bcd bluetooth-init: force hardware-init script to be executed first
- The Bluetooth daemon was always executed before setting up the
  hardware, generating several problems specifically in the CCIMX6SBC.
  This was causing the Bluetooth driver to override the Bluetooth name
  and alias, as well as avoiding any host function on Bluetooth profiles.
  Only pairing and ping was working, as well as client profile sides.
- This change also fixes some issues in the CCIMX6UL platforms with the
  Bluetooth daemon failing to perform several bluetoothctl operations.

https://jira.digi.com/browse/DEL-4000
https://jira.digi.com/browse/DEL-4015

Signed-off-by: David Escalona <david.escalona@digi.com>
2017-03-30 18:02:13 +02:00
Alex Gonzalez 7ee00c1ae8 meta-digi-dey: recipes-connectivity: bluez5: Allow to override baudrate
Reviewing the patches while updating the QCA firmware to a new release,
I encountered this patch. On the original PR it says:

"Do not use hcitattach to reconfigure the baudrate but set it directly in the
Bluetooth FW file; this save us from some syncronism problems if we are not
using HW flow control."

Current spins of the module already use hw flow control. Also, not allowing
hciattach to override the baudrate does not seem right to me. It would be
enough with passing a 3M baudrate to hciattach to match the firmware
default.

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2017-03-17 19:15:27 +01:00
Javier Viguera 33073a1589 meta-digi-dey: enhance BT interface initialization script
Implement:

* support to start, stop and restart interface
* states machine and retries system to recover from command failures
* overall simplification and code clean-up

https://jira.digi.com/browse/DEL-3858

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-03-15 19:01:06 +01:00
Javier Viguera 54bf7a0059 meta-digi-dey: fix bluetooth interface initialization
With the upgrade to Morty, there is a new bootscript that is provided
by Poky. This bootscript is just launching the generic bluetooth daemon,
but it's not doing any hardware initialization.

The fix is to split the hardware initialization to a different
bootscript 'bluetooth-init' and launch it also on boot.

https://jira.digi.com/browse/DEL-3855

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-03-13 11:20:13 +01:00
Javier Viguera 43877673d9 morty migration: bluez5: update package
https://jira.digi.com/browse/DEL-3451

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-02-28 11:46:57 +01:00
Isaac Hermida 702145661c bluez5: imx6ul: configure baudrate in the BT FW file
Do not use hcitattach to reconfigure the baudrate but set it directly in the
Bluetooth FW file; this work arounds some synchronization problems when not
using HW flow control.

https://jira.digi.com/browse/DEL-3052
https://jira.digi.com/browse/DEL-3057

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2016-10-03 17:55:43 +02:00
Isaac Hermida 6e76f9f7e4 bluez5: include hcitool patches (increase "conn" limit and "refresh" typo)
Add a couple of bluez patches: one for increasing the number of connection
showed with "hcitool con" command and remove "refresh" option in hcitool
help that is not supported.
The qca6564 chip can support more than 10 simultaneous BLE connections.

https://jira.digi.com/browse/DEL-2735

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2016-07-12 13:01:28 +02:00
Isaac Hermida 36e3a2c6c3 bluez5-init; redirect bluetooth daemon messages to a log file
https://jira.digi.com/browse/DEL-2632

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2016-06-30 10:06:03 +02:00
Isaac Hermida 32ae76e1cf bluez5-init: rename the CTS gpio name and make the code more robust
Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2016-06-23 15:49:16 +02:00
Isaac Hermida a6d0a1d139 bluez5-init: reset bluetooth qualcomm chip before initialization
The power regulator connected to the qca6554 chip is always on, which causes
the Bluetooth part to not work correctly after a software-reset.
This commit asserts momentarily the BT_EN line during the start-up sequence
to reset the Bluetooth controller so that it is in a predictable state after a
reset.

https://jira.digi.com/browse/DEL-2623

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2016-06-23 15:48:43 +02:00
Isaac Hermida 5308fad8bc bluez5-init: add support to set qca6564 mac address
The steps to set the bluetooth MAC address is send an specific hci command
and an hci reset, so the bluetooth interface need to be up in order to
configure it.
Additionally we have generalized the way to read the MAC address from the
device tree and removed some old code for getting the MAC address in
kernel version 2.

https://jira.digi.com/browse/DUB-595

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2016-06-17 10:05:27 +02:00