From 0e3f72f1aee7639f5171d21b44cbb6cca2390f9b Mon Sep 17 00:00:00 2001 From: Camille BAUD Date: Wed, 15 Oct 2025 19:19:00 +0200 Subject: [PATCH] boards: qualcomm: Add QCC744M EVK Adds the QCC744M EVK, using Bouffalolab port Signed-off-by: Camille BAUD --- boards/qualcomm/index.rst | 10 ++ .../qualcomm/qcc744m_evk/Kconfig.qcc744m_evk | 6 ++ boards/qualcomm/qcc744m_evk/board.cmake | 23 ++++ boards/qualcomm/qcc744m_evk/board.yml | 6 ++ .../qcc744m_evk/doc/img/qcc744m_evk.webp | Bin 0 -> 90878 bytes boards/qualcomm/qcc744m_evk/doc/index.rst | 102 ++++++++++++++++++ .../qcc744m_evk/qcc744m_evk-pinctrl.dtsi | 26 +++++ boards/qualcomm/qcc744m_evk/qcc744m_evk.dts | 81 ++++++++++++++ boards/qualcomm/qcc744m_evk/qcc744m_evk.yaml | 20 ++++ .../qcc744m_evk/qcc744m_evk_defconfig | 8 ++ boards/qualcomm/qcc744m_evk/support/bl61x.cfg | 80 ++++++++++++++ .../qualcomm/qcc744m_evk/support/openocd.cfg | 8 ++ 12 files changed, 370 insertions(+) create mode 100644 boards/qualcomm/index.rst create mode 100644 boards/qualcomm/qcc744m_evk/Kconfig.qcc744m_evk create mode 100644 boards/qualcomm/qcc744m_evk/board.cmake create mode 100644 boards/qualcomm/qcc744m_evk/board.yml create mode 100644 boards/qualcomm/qcc744m_evk/doc/img/qcc744m_evk.webp create mode 100644 boards/qualcomm/qcc744m_evk/doc/index.rst create mode 100644 boards/qualcomm/qcc744m_evk/qcc744m_evk-pinctrl.dtsi create mode 100644 boards/qualcomm/qcc744m_evk/qcc744m_evk.dts create mode 100644 boards/qualcomm/qcc744m_evk/qcc744m_evk.yaml create mode 100644 boards/qualcomm/qcc744m_evk/qcc744m_evk_defconfig create mode 100644 boards/qualcomm/qcc744m_evk/support/bl61x.cfg create mode 100644 boards/qualcomm/qcc744m_evk/support/openocd.cfg diff --git a/boards/qualcomm/index.rst b/boards/qualcomm/index.rst new file mode 100644 index 0000000000000..fe43e150fad65 --- /dev/null +++ b/boards/qualcomm/index.rst @@ -0,0 +1,10 @@ +.. _boards-qualcomm: + +Qualcomm Technologies, Inc. +########################### + +.. toctree:: + :maxdepth: 1 + :glob: + + **/* diff --git a/boards/qualcomm/qcc744m_evk/Kconfig.qcc744m_evk b/boards/qualcomm/qcc744m_evk/Kconfig.qcc744m_evk new file mode 100644 index 0000000000000..1a71dc7b3f6ee --- /dev/null +++ b/boards/qualcomm/qcc744m_evk/Kconfig.qcc744m_evk @@ -0,0 +1,6 @@ +# Copyright (c) 2025 MASSDRIVER EI (massdriver.space) +# +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_QCC744M_EVK + select SOC_BL618M05Q2I diff --git a/boards/qualcomm/qcc744m_evk/board.cmake b/boards/qualcomm/qcc744m_evk/board.cmake new file mode 100644 index 0000000000000..1dcc4d772fad3 --- /dev/null +++ b/boards/qualcomm/qcc744m_evk/board.cmake @@ -0,0 +1,23 @@ +# Copyright (c) 2025 MASSDRIVER EI (massdriver.space) +# +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(openocd --cmd-pre-init "source [find bl61x.cfg]") + +board_runner_args(openocd --use-elf --no-load --no-init) +board_runner_args(openocd --gdb-init "set mem inaccessible-by-default off") +board_runner_args(openocd --gdb-init "set architecture riscv:rv32") +board_runner_args(openocd --gdb-init "set remotetimeout 250") +board_runner_args(openocd --gdb-init "set print asm-demangle on") +board_runner_args(openocd --gdb-init "set backtrace limit 32") +board_runner_args(openocd --gdb-init "mem 0x22FC0000 0x23010000 rw") +board_runner_args(openocd --gdb-init "mem 0x62FC0000 0x63010000 rw") +board_runner_args(openocd --gdb-init "mem 0x90000000 0x90020000 ro") +board_runner_args(openocd --gdb-init "mem 0xA8000000 0xA8800000 rw") +board_runner_args(openocd --gdb-init "mem 0xA0000000 0xA0400000 ro") +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) + +board_runner_args(bflb_mcu_tool --chipname bl616) +include(${ZEPHYR_BASE}/boards/common/bflb_mcu_tool.board.cmake) + +board_set_flasher(bflb_mcu_tool) diff --git a/boards/qualcomm/qcc744m_evk/board.yml b/boards/qualcomm/qcc744m_evk/board.yml new file mode 100644 index 0000000000000..2c4b865e91674 --- /dev/null +++ b/boards/qualcomm/qcc744m_evk/board.yml @@ -0,0 +1,6 @@ +board: + name: qcc744m_evk + full_name: Qualcomm QCC744M Evaluation Board + vendor: qcom + socs: + - name: bl618m05q2i diff --git a/boards/qualcomm/qcc744m_evk/doc/img/qcc744m_evk.webp b/boards/qualcomm/qcc744m_evk/doc/img/qcc744m_evk.webp new file mode 100644 index 0000000000000000000000000000000000000000..ae8976043ce1a36ddba40a3c6dda9781ec111c06 GIT binary patch literal 90878 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

`imyL9X@}^!xN8%uMcEAF$$rNn0P2 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⪼hbcR2gR;xS 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৅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 P000000000000000F{YT1 literal 0 HcmV?d00001 diff --git a/boards/qualcomm/qcc744m_evk/doc/index.rst b/boards/qualcomm/qcc744m_evk/doc/index.rst new file mode 100644 index 0000000000000..ee96d3e53ddcd --- /dev/null +++ b/boards/qualcomm/qcc744m_evk/doc/index.rst @@ -0,0 +1,102 @@ +.. zephyr:board:: qcc744m_evk + +Overview +******** + +The QCC744M Evaluation board features the QCC744M module, which contains a QCC744-2 SoC with 4MB of +PSRAM and an external 8MB Flash chip. +Qualcomm QCC74x is a tri-radio chipset integrating 1x1 Wi-Fi 6, Bluetooth 5.4, +and IEEE 802.15.4 (Thread and Zigbee-ready) powered by a 32-bit RISC-V MCU up to 320 MHz, it is +based on, and mostly equivalent, to the Bouffalolab BL61x Serie of chipsets. + +Hardware +******** + +For more information about the Qualcomm QCC74x MCU: + +- `Qualcomm QCC74x MCU Datasheet`_ +- `Qualcomm QCC74x MCU Programming Manual`_ +- `Qualcomm QCC744M EVK Quick Start Guide`_ +- `Qualcomm QCC74x SDK`_ +- `qcc744m_evk Schematics`_ + +Supported Features +================== + +.. zephyr:board-supported-hw:: + + +Serial Port +=========== + +The ``qcc744m_evk`` board uses UART0 as default serial port. It is connected +to the onboard USB Serial converter and the port is used for both program and console. + + +Programming and Debugging +************************* + +Samples +======= + +#. Build the Zephyr kernel and the :zephyr:code-sample:`hello_world` sample application: + + .. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: qcc744m_evk + :goals: build + +#. ``west flash`` cannot flash QCC74x MCUs at the moment. + You may first acquire 'QConn Flash' from the QCC74x SDK and follow these instructions: + + * Open Qconn Flash + * Go to tab 'Flash Utils' + * Select appropriate flash port and interface. + * Reset board (press RESET, right button) while holding the BOOT (left) button to enter flash mode + * In 'Flash Program', browse to ``bsp/board/qcc744dk/config/boot2_qcc743_isp_release_v8.1.9.bin`` from the SDK and set the address to 0x0 + * Press the 'Download' Button + * Enter Flash mode again + * In 'Flash Program', browse to zephyr.bin from your build folder and set the address to 0x2000 + * Press the 'Download' Button again. + + Your board is now flashed. Once the first binary has been flashed at 0x0, there is no need to re-flash it + unless the flash area containing it is erased. + +#. Run your favorite terminal program to listen for output. Under Linux the + terminal should be :code:`/dev/ttyACM1`. For example: + + .. code-block:: console + + $ screen /dev/ttyACM1 115200 + + Connection should be configured as follows: + + - Speed: 115200 + - Data: 8 bits + - Parity: None + - Stop bits: 1 + + Then, press and release RESET button + + .. code-block:: console + + *** Booting Zephyr OS build v4.2.0 *** + Hello World! qcc744m_evk/bl618m05q2i + +Congratulations, you have ``qcc744m_evk`` configured and running Zephyr. + + +.. _Qualcomm QCC74x MCU Datasheet: + https://docs.qualcomm.com/bundle/publicresource/topics/80-WL743-1 + +.. _Qualcomm QCC74x MCU Programming Manual: + https://docs.qualcomm.com/bundle/publicresource/topics/80-58740-1/ + +.. _Qualcomm QCC744M EVK Quick Start Guide: + https://docs.qualcomm.com/bundle/publicresource/topics/80-WL740-250/landingpage.html + +.. _Qualcomm QCC74x SDK: + https://git.codelinaro.org/clo/qcc7xx/QCCSDK-QCC74x + +.. _qcc744m_evk Schematics: + https://docs.qualcomm.com/bundle/publicresource/80-78831-41_REV_AC_QCC744M_Evaluation_Kit_Reference_Schematic.pdf diff --git a/boards/qualcomm/qcc744m_evk/qcc744m_evk-pinctrl.dtsi b/boards/qualcomm/qcc744m_evk/qcc744m_evk-pinctrl.dtsi new file mode 100644 index 0000000000000..42d6b7429f9a8 --- /dev/null +++ b/boards/qualcomm/qcc744m_evk/qcc744m_evk-pinctrl.dtsi @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2025 MASSDRIVER EI (massdriver.space) + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +&pinctrl { + uart0_default: uart0_default { + group1 { + pinmux = , + ; + bias-pull-up; + input-schmitt-enable; + }; + }; + + uart0_sleep: uart0_sleep { + group1 { + pinmux = , + ; + bias-high-impedance; + }; + }; +}; diff --git a/boards/qualcomm/qcc744m_evk/qcc744m_evk.dts b/boards/qualcomm/qcc744m_evk/qcc744m_evk.dts new file mode 100644 index 0000000000000..ac87b0290c2c1 --- /dev/null +++ b/boards/qualcomm/qcc744m_evk/qcc744m_evk.dts @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2025 MASSDRIVER EI (massdriver.space) + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include +#include "qcc744m_evk-pinctrl.dtsi" + +/ { + model = "Qualcomm QCC744M Evaluation Board"; + compatible = "qcom,qcc744m_evk"; + + chosen { + zephyr,flash = &flash0; + zephyr,code-partition = &slot0_partition; + zephyr,itcm = &sram1; + zephyr,sram = &sram0; + zephyr,console = &uart0; + zephyr,shell-uart = &uart0; + }; + + aliases { + sw0 = &button_0; + }; + + buttons { + compatible = "gpio-keys"; + + button_0: sw0 { + /* To use, CH347 DTR1 jumper must be removed */ + gpios = <&gpio0 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; + zephyr,code = ; + }; + }; +}; + +&cpu0 { + clock-frequency = ; +}; + +&flashctrl { + flash0: flash@A0000000 { + compatible = "soc-nv-flash", "giantec,25q64a"; + reg = <0xA0000000 (0x800000 - 0x2000)>; + write-block-size = <256>; + erase-block-size = ; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + slot0_partition: partition@0 { + label = "image-0"; + reg = <0x00000000 0x00100000>; + read-only; + }; + + storage_partition: partition@100000 { + label = "storage"; + reg = <0x00100000 (0x700000 - 0x2000)>; + }; + }; + }; +}; + +&uart0 { + status = "okay"; + current-speed = <115200>; + + pinctrl-0 = <&uart0_default>; + pinctrl-1 = <&uart0_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&gpio0 { + status = "okay"; +}; diff --git a/boards/qualcomm/qcc744m_evk/qcc744m_evk.yaml b/boards/qualcomm/qcc744m_evk/qcc744m_evk.yaml new file mode 100644 index 0000000000000..f3baf7b41208e --- /dev/null +++ b/boards/qualcomm/qcc744m_evk/qcc744m_evk.yaml @@ -0,0 +1,20 @@ +# Copyright (c) 2025 MASSDRIVER EI (massdriver.space) +# +# SPDX-License-Identifier: Apache-2.0 + +identifier: qcc744m_evk +name: Qualcomm QCC744M Evaluation Board +type: mcu +arch: riscv +ram: 480 +toolchain: + - zephyr +testing: + ignore_tags: + - net + - bluetooth +supported: + - gpio + - pinctrl + - uart +vendor: qcom diff --git a/boards/qualcomm/qcc744m_evk/qcc744m_evk_defconfig b/boards/qualcomm/qcc744m_evk/qcc744m_evk_defconfig new file mode 100644 index 0000000000000..08f9205a0b5d7 --- /dev/null +++ b/boards/qualcomm/qcc744m_evk/qcc744m_evk_defconfig @@ -0,0 +1,8 @@ +# Copyright (c) 2025 MASSDRIVER EI (massdriver.space) +# +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_CONSOLE=y +CONFIG_SERIAL=y + +CONFIG_UART_CONSOLE=y diff --git a/boards/qualcomm/qcc744m_evk/support/bl61x.cfg b/boards/qualcomm/qcc744m_evk/support/bl61x.cfg new file mode 100644 index 0000000000000..9c8523db4f1d8 --- /dev/null +++ b/boards/qualcomm/qcc744m_evk/support/bl61x.cfg @@ -0,0 +1,80 @@ +# Copyright (c) 2025 MASSDRIVER EI (massdriver.space) +# +# SPDX-License-Identifier: Apache-2.0 + +if { [info exists CHIPNAME] } { + set _CHIPNAME $CHIPNAME +} else { + set _CHIPNAME riscv +} + +if { [info exists WORKAREASIZE] } { + set _WORKAREASIZE $WORKAREASIZE +} else { + set _WORKAREASIZE 0x10000 +} + +if { [info exists WORKAREAADDR] } { + set _WORKAREAADDR $WORKAREAADDR +} else { + set _WORKAREAADDR 0x40000000 +} + +if { [info exists CPUTAPID] } { + set _CPUTAPID $CPUTAPID +} else { + set _CPUTAPID 0x10000b6f +} + +transport select jtag +jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id $_CPUTAPID + +set _TARGETNAME $_CHIPNAME.cpu +target create $_TARGETNAME.0 riscv -chain-position $_TARGETNAME + +$_TARGETNAME.0 configure -work-area-phys $_WORKAREAADDR -work-area-size $_WORKAREASIZE -work-area-backup 0 + +echo "Ready for Remote Connections" + +$_TARGETNAME.0 configure -event reset-assert-pre { + echo "reset-assert-pre" + adapter speed 400 +} + +$_TARGETNAME.0 configure -event reset-deassert-post { + echo "reset-deassert-post" + + adapter speed 400 + + reg mstatus 0x7880 + reg mie 0 +} + +$_TARGETNAME.0 configure -event reset-init { + echo "reset-init" + + adapter speed 400 + reg mstatus 0x1880 + reg mie 0 + reg pc 0xA0000000 +} + +$_TARGETNAME.0 configure -event gdb-attach { + echo "Debugger attaching: halting execution" + halt + gdb_breakpoint_override hard +} + +$_TARGETNAME.0 configure -event gdb-detach { + echo "Debugger detaching: resuming execution" + resume +} + +gdb_memory_map enable +gdb_flash_program enable + +# 'progbuf', 'sysbus' or 'abstract' +riscv set_mem_access sysbus +riscv set_command_timeout_sec 1 + +init diff --git a/boards/qualcomm/qcc744m_evk/support/openocd.cfg b/boards/qualcomm/qcc744m_evk/support/openocd.cfg new file mode 100644 index 0000000000000..5785fb1b210ad --- /dev/null +++ b/boards/qualcomm/qcc744m_evk/support/openocd.cfg @@ -0,0 +1,8 @@ +# For the provided CH347 + +adapter driver ch347 +ch347 vid_pid 0x1a86 0x55de + +adapter speed 1000 + +transport select jtag