Skip to content

Commit 154e378

Browse files
committed
boards: qualcomm: Add QCC744M EVK
Adds the QCC744M EVK, using Bouffalolab port Signed-off-by: Camille BAUD <[email protected]>
1 parent 7c82c06 commit 154e378

File tree

12 files changed

+369
-0
lines changed

12 files changed

+369
-0
lines changed

boards/qualcomm/index.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
.. _boards-qualcomm:
2+
3+
Qualcomm Technologies, Inc.
4+
###########################
5+
6+
.. toctree::
7+
:maxdepth: 1
8+
:glob:
9+
10+
**/*
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Copyright (c) 2025 MASSDRIVER EI (massdriver.space)
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
config BOARD_QCC744M_EVK
6+
select SOC_BL618M05Q2I
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Copyright (c) 2025 MASSDRIVER EI (massdriver.space)
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
board_runner_args(openocd --cmd-pre-init "source [find bl61x.cfg]")
6+
7+
board_runner_args(openocd --use-elf --no-load --no-init)
8+
board_runner_args(openocd --gdb-init "set mem inaccessible-by-default off")
9+
board_runner_args(openocd --gdb-init "set architecture riscv:rv32")
10+
board_runner_args(openocd --gdb-init "set remotetimeout 250")
11+
board_runner_args(openocd --gdb-init "set print asm-demangle on")
12+
board_runner_args(openocd --gdb-init "set backtrace limit 32")
13+
board_runner_args(openocd --gdb-init "mem 0x22FC0000 0x23010000 rw")
14+
board_runner_args(openocd --gdb-init "mem 0x62FC0000 0x63010000 rw")
15+
board_runner_args(openocd --gdb-init "mem 0x90000000 0x90020000 ro")
16+
board_runner_args(openocd --gdb-init "mem 0xA8000000 0xA8800000 rw")
17+
board_runner_args(openocd --gdb-init "mem 0xA0000000 0xA0400000 ro")
18+
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
19+
20+
board_runner_args(bflb_mcu_tool --chipname bl616)
21+
include(${ZEPHYR_BASE}/boards/common/bflb_mcu_tool.board.cmake)
22+
23+
board_set_flasher(bflb_mcu_tool)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
board:
2+
name: qcc744m_evk
3+
full_name: Qualcomm QCC744M Evaluation Board
4+
vendor: qcom
5+
socs:
6+
- name: bl618m05q2i
88.7 KB
Loading
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
.. zephyr:board:: qcc744m_evk
2+
3+
Overview
4+
********
5+
6+
The QCC744M Evaluation board features the QCC744M module, Which contains a QCC744-2 SoC with 4MB of
7+
PSRAM and an external 8MB Flash chip.
8+
Qualcomm QCC74x is a tri-radio chipset integrating 1x1 Wi-Fi 6, Bluetooth 5.4,
9+
and IEEE 802.15.4 (Thread and Zigbee-ready) powered by a 32-bit RISC-V MCU up to 320 MHz, it is
10+
based on, and mostly equivalent, to the Bouffalolab BL61x Serie of chipsets.
11+
12+
Hardware
13+
********
14+
15+
For more information about the Qualcomm QCC74x MCU:
16+
17+
- `Qualcomm QCC74x MCU Datasheet`_
18+
- `Qualcomm QCC74x MCU Programming Manual`_
19+
- `Qualcomm QCC744M EVK Quick Start Guide`_
20+
- `Qualcomm QCC74x SDK`_
21+
- `qcc744m_evk Schematics`_
22+
23+
Supported Features
24+
==================
25+
26+
.. zephyr:board-supported-hw::
27+
28+
29+
Serial Port
30+
===========
31+
32+
The ``qcc744m_evk`` board uses UART0 as default serial port. It is connected
33+
to the onboard USB Serial converter and the port is used for both program and console.
34+
35+
36+
Programming and Debugging
37+
*************************
38+
39+
Samples
40+
=======
41+
42+
#. Build the Zephyr kernel and the :zephyr:code-sample:`hello_world` sample application:
43+
44+
.. zephyr-app-commands::
45+
:zephyr-app: samples/hello_world
46+
:board: qcc744m_evk
47+
:goals: build
48+
49+
#. ``west flash`` cannot flash QCC74x MCUs at the moment.
50+
You may first acquire 'QConn Flash' from the QCC74x SDK and follow these instructions:
51+
52+
* Open Qconn Flash
53+
* Go to tab 'Flash Utils'
54+
* Select appropriate flash port and interface.
55+
* Reset board (press RESET, right button) while holding the BOOT (left) button to enter flash mode
56+
* In 'Flash Program', browse to zephyr.bin from your build folder and set the address to 0x2000
57+
* Press the 'Download' Button
58+
* Enter Flash mode again
59+
* In 'Flash Program', browse to header.bin from this board's folder and set the address to 0x0
60+
* Press the 'Download' Button again.
61+
62+
Your board is now flashed.
63+
64+
#. Run your favorite terminal program to listen for output. Under Linux the
65+
terminal should be :code:`/dev/ttyACM1`. For example:
66+
67+
.. code-block:: console
68+
69+
$ screen /dev/ttyACM1 115200
70+
71+
Connection should be configured as follows:
72+
73+
- Speed: 115200
74+
- Data: 8 bits
75+
- Parity: None
76+
- Stop bits: 1
77+
78+
Then, press and release RESET button
79+
80+
.. code-block:: console
81+
82+
*** Booting Zephyr OS build v4.2.0 ***
83+
Hello World! qcc744m_evk/bl618m05q2i
84+
85+
Congratulations, you have ``qcc744m_evk`` configured and running Zephyr.
86+
87+
88+
.. _Qualcomm QCC74x MCU Datasheet:
89+
https://docs.qualcomm.com/bundle/publicresource/topics/80-WL743-1
90+
91+
.. _Qualcomm QCC74x MCU Programming Manual:
92+
https://docs.qualcomm.com/bundle/publicresource/topics/80-58740-1/
93+
94+
.. _Qualcomm QCC744M EVK Quick Start Guide:
95+
https://docs.qualcomm.com/bundle/publicresource/topics/80-WL740-250/landingpage.html
96+
97+
.. _Qualcomm QCC74x SDK:
98+
https://git.codelinaro.org/clo/qcc7xx/QCCSDK-QCC74x
99+
100+
.. _qcc744m_evk Schematics:
101+
https://docs.qualcomm.com/bundle/publicresource/80-78831-41_REV_AC_QCC744M_Evaluation_Kit_Reference_Schematic.pdf
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* Copyright (c) 2025 MASSDRIVER EI (massdriver.space)
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include <dt-bindings/pinctrl/bl618x-pinctrl.h>
8+
9+
&pinctrl {
10+
uart0_default: uart0_default {
11+
group1 {
12+
pinmux = <GPIO22_UART0_RX>,
13+
<GPIO21_UART0_TX>;
14+
bias-pull-up;
15+
input-schmitt-enable;
16+
};
17+
};
18+
19+
uart0_sleep: uart0_sleep {
20+
group1 {
21+
pinmux = <GPIO22_UART0_RX>,
22+
<GPIO21_UART0_TX>;
23+
bias-high-impedance;
24+
};
25+
};
26+
};
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
/*
2+
* Copyright (c) 2025 MASSDRIVER EI (massdriver.space)
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/dts-v1/;
8+
9+
#include <bflb/bl618.dtsi>
10+
#include "qcc744m_evk-pinctrl.dtsi"
11+
12+
/ {
13+
model = "Qualcomm QCC744M Evaluation Board";
14+
compatible = "bflb,bl618";
15+
16+
chosen {
17+
zephyr,flash = &flash0;
18+
zephyr,code-partition = &slot0_partition;
19+
zephyr,itcm = &sram1;
20+
zephyr,sram = &sram0;
21+
zephyr,console = &uart0;
22+
zephyr,shell-uart = &uart0;
23+
};
24+
25+
aliases {
26+
sw0 = &button_0;
27+
};
28+
29+
buttons {
30+
compatible = "gpio-keys";
31+
32+
button_0: sw0 {
33+
/* To use, CH347 DTR1 jumper must be removed */
34+
gpios = <&gpio0 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
35+
zephyr,code = <INPUT_KEY_0>;
36+
};
37+
};
38+
};
39+
40+
&cpu0 {
41+
clock-frequency = <DT_FREQ_M(320)>;
42+
};
43+
44+
&flashctrl {
45+
flash0: flash@A0000000 {
46+
compatible = "soc-nv-flash", "giantec,25q64a";
47+
reg = <0xA0000000 (0x800000 - 0x2000)>;
48+
write-block-size = <256>;
49+
erase-block-size = <DT_SIZE_K(4)>;
50+
51+
partitions {
52+
compatible = "fixed-partitions";
53+
#address-cells = <1>;
54+
#size-cells = <1>;
55+
56+
slot0_partition: partition@0 {
57+
label = "image-0";
58+
reg = <0x00000000 0x00100000>;
59+
read-only;
60+
};
61+
62+
storage_partition: partition@100000 {
63+
label = "storage";
64+
reg = <0x00100000 (0x700000 - 0x2000)>;
65+
};
66+
};
67+
};
68+
};
69+
70+
&uart0 {
71+
status = "okay";
72+
current-speed = <115200>;
73+
74+
pinctrl-0 = <&uart0_default>;
75+
pinctrl-1 = <&uart0_sleep>;
76+
pinctrl-names = "default", "sleep";
77+
};
78+
79+
&gpio0 {
80+
status = "okay";
81+
};
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright (c) 2025 MASSDRIVER EI (massdriver.space)
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
identifier: qcc744m_evk
6+
name: Qualcomm QCC744M Evaluation Board
7+
type: mcu
8+
arch: riscv
9+
ram: 480
10+
toolchain:
11+
- zephyr
12+
testing:
13+
ignore_tags:
14+
- net
15+
- bluetooth
16+
supported:
17+
- gpio
18+
- pinctrl
19+
- uart
20+
vendor: qcom
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Copyright (c) 2025 MASSDRIVER EI (massdriver.space)
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
CONFIG_CONSOLE=y
6+
CONFIG_SERIAL=y
7+
8+
CONFIG_UART_CONSOLE=y

0 commit comments

Comments
 (0)