Adds support for beagleplay cc1352 co-processor firmware upgrade using
kernel Firmware Upload API. Uses ROM based bootloader present in
cc13x2x7 and cc26x2x7 platforms for flashing over UART.
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.
Bootloader backdoor and Reset GPIOs are used to enable cc1352p7 bootloader
backdoor for flashing. 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.
Link: https://www.ti.com/lit/ug/swcu192/swcu192.pdf Ti CC1352p7 Tecnical Specification
Link:
https://lore.kernel.org/all/20240719-beagleplay_fw_upgrade-v1-0-8664d451325…
Patch v1
Changes in v2:
- Spelling fixes
- Rename boot-gpios to bootloader-backdoor-gpios
- Add doc comments
- Add check to ensure firmware size is 704 KB
Signed-off-by: Ayush Singh <ayush(a)beagleboard.org>
---
Ayush Singh (3):
dt-bindings: net: ti,cc1352p7: Add bootloader-backdoor-gpios
arm64: dts: ti: k3-am625-beagleplay: Add bootloader-backdoor-gpios to cc1352p7
greybus: gb-beagleplay: Add firmware upload API
.../devicetree/bindings/net/ti,cc1352p7.yaml | 7 +
arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts | 3 +-
drivers/greybus/Kconfig | 1 +
drivers/greybus/gb-beagleplay.c | 658 ++++++++++++++++++++-
4 files changed, 655 insertions(+), 14 deletions(-)
---
base-commit: f76698bd9a8ca01d3581236082d786e9a6b72bb7
change-id: 20240715-beagleplay_fw_upgrade-43e6cceb0d3d
Best regards,
--
Ayush Singh <ayush(a)beagleboard.org>
Adds support for beagleplay cc1352 co-processor firmware upgrade using
kernel Firmware Upload API. Uses ROM based bootloader present in
cc13x2x7 and cc26x2x7 platforms for flashing over UART.
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. 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.
Link: https://www.ti.com/lit/ug/swcu192/swcu192.pdf Ti CC1352p7 Tecnical Specification
Signed-off-by: Ayush Singh <ayush(a)beagleboard.org>
---
Ayush Singh (3):
dt-bindings: net: ti,cc1352p7: Add boot-gpio
arm64: dts: ti: k3-am625-beagleplay: Add boot-gpios to cc1352p7
greybus: gb-beagleplay: Add firmware upload API
.../devicetree/bindings/net/ti,cc1352p7.yaml | 4 +
arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts | 3 +-
drivers/greybus/Kconfig | 1 +
drivers/greybus/gb-beagleplay.c | 625 ++++++++++++++++++++-
4 files changed, 620 insertions(+), 13 deletions(-)
---
base-commit: f76698bd9a8ca01d3581236082d786e9a6b72bb7
change-id: 20240715-beagleplay_fw_upgrade-43e6cceb0d3d
Best regards,
--
Ayush Singh <ayush(a)beagleboard.org>