linux-yocto/drivers/greybus/Kconfig
Ayush Singh 0cf7befa3e greybus: gb-beagleplay: Add firmware upload API
Register with firmware upload API to allow updating firmware on cc1352p7
without resorting to overlay for using the userspace flasher.

Communication with the bootloader can be moved out of gb-beagleplay
driver if required, but I am keeping it here since there are no
immediate plans to use the on-board cc1352p7 for anything other than
greybus (BeagleConnect Technology). Additionally, there do not seem to
any other devices using cc1352p7 or it's cousins as a co-processor.

Boot and Reset GPIOs are used to enable cc1352p7 bootloader backdoor for
flashing. The delays while starting bootloader are taken from the
userspace flasher since the technical specification does not provide
sufficient information regarding it.

Flashing is skipped in case we are trying to flash the same
image as the one that is currently present. This is determined by CRC32
calculation of the supplied firmware and Flash data.

We also do a CRC32 check after flashing to ensure that the firmware was
flashed properly.

Firmware size should be 704 KB.

Link: https://www.ti.com/lit/ug/swcu192/swcu192.pdf Ti CC1352p7 Tecnical Specification
Link: https://openbeagle.org/beagleconnect/cc1352-flasher Userspace
Flasher

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
Link: https://lore.kernel.org/r/20240903-beagleplay_fw_upgrade-v4-3-526fc62204a7@beagleboard.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-09-12 09:04:09 +02:00

1.3 KiB

SPDX-License-Identifier: GPL-2.0

menuconfig GREYBUS tristate "Greybus support" depends on SYSFS help This option enables the Greybus driver core. Greybus is a hardware protocol that was designed to provide Unipro with a sane application layer. It was originally designed for the ARA project, a module phone system, but has shown up in other phones, and can be tunneled over other busses in order to control hardware devices.

  Say Y here to enable support for these types of drivers.

  To compile this code as a module, choose M here: the module
  will be called greybus.ko

if GREYBUS

config GREYBUS_BEAGLEPLAY tristate "Greybus BeaglePlay driver" depends on SERIAL_DEV_BUS select CRC_CCITT select FW_LOADER select FW_UPLOAD help Select this option if you have a BeaglePlay where CC1352 co-processor acts as Greybus SVC.

  To compile this code as a module, chose M here: the module
  will be called gb-beagleplay.ko

config GREYBUS_ES2 tristate "Greybus ES3 USB host controller" depends on USB help Select this option if you have a Toshiba ES3 USB device that acts as a Greybus "host controller". This device is a bridge from a USB device to a Unipro network.

  To compile this code as a module, choose M here: the module
  will be called gb-es2.ko

endif # GREYBUS