boards: arm: Add Qomu board
Add Qomu board device tree and configuration files. Qomu source files: https://github.com/QuickLogic-Corp/qomu-dev-board/ Signed-off-by: Michal Sieron <msieron@antmicro.com>
This commit is contained in:
parent
88e8b69daf
commit
20a8dd5491
11 changed files with 277 additions and 0 deletions
4
boards/arm/qomu/CMakeLists.txt
Normal file
4
boards/arm/qomu/CMakeLists.txt
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# Copyright (c) 2022 Antmicro <www.antmicro.com>
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
zephyr_library_sources(board.c)
|
10
boards/arm/qomu/Kconfig
Normal file
10
boards/arm/qomu/Kconfig
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# QuickLogic Qomu board
|
||||||
|
|
||||||
|
# Copyright (c) 2022 Antmicro <www.antmicro.com>
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
config BOARD_INIT_PRIORITY
|
||||||
|
int
|
||||||
|
default KERNEL_INIT_PRIORITY_DEFAULT
|
||||||
|
help
|
||||||
|
Board initialization priority.
|
8
boards/arm/qomu/Kconfig.board
Normal file
8
boards/arm/qomu/Kconfig.board
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# QuickLogic Qomu board
|
||||||
|
|
||||||
|
# Copyright (c) 2022 Antmicro <www.antmicro.com>
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
config BOARD_QOMU
|
||||||
|
bool "QuickLogic Qomu target"
|
||||||
|
depends on SOC_EOS_S3
|
11
boards/arm/qomu/Kconfig.defconfig
Normal file
11
boards/arm/qomu/Kconfig.defconfig
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# QuickLogic Qomu board
|
||||||
|
|
||||||
|
# Copyright (c) 2022 Antmicro <www.antmicro.com>
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
if BOARD_QOMU
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "qomu"
|
||||||
|
|
||||||
|
endif # BOARD_QOMU
|
29
boards/arm/qomu/board.c
Normal file
29
boards/arm/qomu/board.c
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2022 Antmicro <www.antmicro.com>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <zephyr/init.h>
|
||||||
|
#include <soc.h>
|
||||||
|
#include "board.h"
|
||||||
|
|
||||||
|
static int qomu_board_init(const struct device *arg)
|
||||||
|
{
|
||||||
|
ARG_UNUSED(arg);
|
||||||
|
|
||||||
|
/* IO MUX setup for UART */
|
||||||
|
eos_s3_io_mux(UART_TX_PAD, UART_TX_PAD_CFG);
|
||||||
|
eos_s3_io_mux(UART_RX_PAD, UART_RX_PAD_CFG);
|
||||||
|
|
||||||
|
IO_MUX->UART_rxd_SEL = UART_RX_SEL;
|
||||||
|
|
||||||
|
/* IO MUX setup for USB */
|
||||||
|
eos_s3_io_mux(USB_PU_CTRL_PAD, USB_PAD_CFG);
|
||||||
|
eos_s3_io_mux(USB_DN_PAD, USB_PAD_CFG);
|
||||||
|
eos_s3_io_mux(USB_DP_PAD, USB_PAD_CFG);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SYS_INIT(qomu_board_init, PRE_KERNEL_1, CONFIG_BOARD_INIT_PRIORITY);
|
25
boards/arm/qomu/board.h
Normal file
25
boards/arm/qomu/board.h
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2022 Antmicro <www.antmicro.com>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __INC_BOARD_H
|
||||||
|
#define __INC_BOARD_H
|
||||||
|
|
||||||
|
#include <soc_pinmap.h>
|
||||||
|
|
||||||
|
#define USB_PU_CTRL_PAD 23
|
||||||
|
#define USB_DN_PAD 28
|
||||||
|
#define USB_DP_PAD 31
|
||||||
|
#define USB_PAD_CFG (PAD_E_4MA | PAD_P_Z | PAD_OEN_NORMAL | PAD_SMT_DISABLE \
|
||||||
|
| PAD_REN_DISABLE | PAD_SR_SLOW | PAD_CTRL_SEL_FPGA)
|
||||||
|
|
||||||
|
#define UART_TX_PAD 44
|
||||||
|
#define UART_TX_PAD_CFG UART_TXD_PAD44
|
||||||
|
#define UART_RX_PAD 45
|
||||||
|
#define UART_RX_PAD_CFG UART_RXD_PAD45
|
||||||
|
|
||||||
|
#define UART_RX_SEL UART_RXD_SEL_PAD45
|
||||||
|
|
||||||
|
#endif /* __INC_BOARD_H */
|
BIN
boards/arm/qomu/doc/img/qomu-board.png
Normal file
BIN
boards/arm/qomu/doc/img/qomu-board.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 184 KiB |
77
boards/arm/qomu/doc/index.rst
Normal file
77
boards/arm/qomu/doc/index.rst
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
.. _qomu:
|
||||||
|
|
||||||
|
Qomu
|
||||||
|
####
|
||||||
|
|
||||||
|
Overview
|
||||||
|
********
|
||||||
|
|
||||||
|
The Qomu board is a platform with an on-board QuickLogic EOS S3 Sensor Processing Platform.
|
||||||
|
|
||||||
|
|
||||||
|
.. figure:: img/qomu-board.png
|
||||||
|
:align: center
|
||||||
|
:alt: Qomu
|
||||||
|
|
||||||
|
Qomu (Credit: QuickLogic)
|
||||||
|
|
||||||
|
Hardware
|
||||||
|
********
|
||||||
|
|
||||||
|
- QuickLogic EOS S3 MCU Platform
|
||||||
|
- 16 Mbit of on-board flash memory
|
||||||
|
- Touchpads (4)
|
||||||
|
- RGB LED
|
||||||
|
- Powered from USB
|
||||||
|
|
||||||
|
Detailed information about the board can be found in a `Qomu repository`_ and `Qomu User Guide`_.
|
||||||
|
|
||||||
|
Connections and IOs
|
||||||
|
===================
|
||||||
|
|
||||||
|
Detailed information about pinouts is available in the `schematics document`_.
|
||||||
|
|
||||||
|
Programming
|
||||||
|
***********
|
||||||
|
|
||||||
|
The Qomu platform by default boots from flash.
|
||||||
|
|
||||||
|
Below are steps to run Qomu sample application:
|
||||||
|
|
||||||
|
#. Build the sample in an usual way:
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/boards/qomu
|
||||||
|
:board: qomu
|
||||||
|
:goals: build
|
||||||
|
|
||||||
|
#. Remove Qomu board from USB port.
|
||||||
|
#. Insert Qomu board to USB port.
|
||||||
|
#. While the blue LED is blinking (for 5 seconds), touch the touch-pads with your finger.
|
||||||
|
On success, the green led will start flashing.
|
||||||
|
#. Use TinyFpgaProgrammer application to load the target application:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
python3 /path/to/TinyFPGA-Programmer-Application/tinyfpga-programmer-gui.py --mode m4 --m4app build/zephyr/zephyr.bin --reset
|
||||||
|
|
||||||
|
Refer to `TinyFPGA Programmer Application repo`_ for detailed information on installation
|
||||||
|
and program usage.
|
||||||
|
|
||||||
|
|
||||||
|
References
|
||||||
|
**********
|
||||||
|
|
||||||
|
.. target-notes::
|
||||||
|
|
||||||
|
.. _Qomu repository:
|
||||||
|
https://github.com/QuickLogic-Corp/qomu-dev-board
|
||||||
|
|
||||||
|
.. _Qomu User Guide:
|
||||||
|
https://github.com/QuickLogic-Corp/qomu-dev-board/blob/master/doc/Qomu_UserGuide.pdf
|
||||||
|
|
||||||
|
.. _schematics document:
|
||||||
|
https://github.com/QuickLogic-Corp/qomu-dev-board/blob/master/doc/qomu-board.pdf
|
||||||
|
|
||||||
|
.. _TinyFPGA Programmer Application repo:
|
||||||
|
https://github.com/QuickLogic-Corp/TinyFPGA-Programmer-Application
|
74
boards/arm/qomu/qomu.dts
Normal file
74
boards/arm/qomu/qomu.dts
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2022 Antmicro <www.antmicro.com>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include <quicklogic/quicklogic_eos_s3.dtsi>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "QuickLogic Qomu board";
|
||||||
|
compatible = "quicklogic,eos_s3";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,console = &uart1;
|
||||||
|
zephyr,shell-uart = &uart1;
|
||||||
|
zephyr,uart-pipe = &uart1;
|
||||||
|
};
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
led0 = &blue_led;
|
||||||
|
led1 = &green_led;
|
||||||
|
led2 = &red_led;
|
||||||
|
sw0 = &button0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
blue_led: led_0 {
|
||||||
|
gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "LED 0";
|
||||||
|
};
|
||||||
|
|
||||||
|
green_led: led_1 {
|
||||||
|
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "LED 1";
|
||||||
|
};
|
||||||
|
|
||||||
|
red_led: led_2 {
|
||||||
|
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "LED 2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
buttons {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
button0: button_0 {
|
||||||
|
gpios = <&gpio 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
|
||||||
|
label = "User Push Button 0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fpga0: fpga {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&cpu0 {
|
||||||
|
clock-frequency = <61440000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart1 {
|
||||||
|
status = "okay";
|
||||||
|
current-speed = <115200>;
|
||||||
|
};
|
12
boards/arm/qomu/qomu.yaml
Normal file
12
boards/arm/qomu/qomu.yaml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
identifier: qomu
|
||||||
|
name: QuickLogic Qomu
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
testing:
|
||||||
|
ignore_tags:
|
||||||
|
- net
|
||||||
|
- bluetooth
|
27
boards/arm/qomu/qomu_defconfig
Normal file
27
boards/arm/qomu/qomu_defconfig
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
# Copyright (c) 2022 Antmicro <www.antmicro.com>
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
CONFIG_ARM_MPU=n
|
||||||
|
CONFIG_SOC_EOS_S3=y
|
||||||
|
CONFIG_BOARD_QOMU=y
|
||||||
|
|
||||||
|
# system clock
|
||||||
|
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=61440000
|
||||||
|
CONFIG_CORTEX_M_SYSTICK=y
|
||||||
|
|
||||||
|
# console
|
||||||
|
CONFIG_SERIAL=y
|
||||||
|
CONFIG_CONSOLE=y
|
||||||
|
CONFIG_UART_CONSOLE=y
|
||||||
|
|
||||||
|
# EOS S3 Configuration Manager copies software from external flash to MCU
|
||||||
|
# memory using preconfigured DMA and execute it there.
|
||||||
|
# Thus we do not use flash directly.
|
||||||
|
|
||||||
|
CONFIG_XIP=n
|
||||||
|
CONFIG_FLASH=n
|
||||||
|
CONFIG_FLASH_SIZE=0
|
||||||
|
CONFIG_FLASH_BASE_ADDRESS=0x0
|
||||||
|
|
||||||
|
# GPIO
|
||||||
|
CONFIG_GPIO=y
|
Loading…
Add table
Add a link
Reference in a new issue