summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2021-03-02 12:24:12 +0700
committerhathach <[email protected]>2021-03-02 12:24:12 +0700
commitb066fdc2c69591412d2b7c9111a122266cd9f87a (patch)
treecd83f56098b7f2022b5875aff6206bdbc9815241
parent71313d934d2258802a850cccecaf18f0cdccf386 (diff)
move fomu to its own family, update ci with build risv
-rw-r--r--.github/workflows/build.yml150
-rw-r--r--examples/make.mk4
-rw-r--r--hw/bsp/fomu/boards/fomu/board.h40
-rw-r--r--hw/bsp/fomu/boards/fomu/board.mk1
-rw-r--r--hw/bsp/fomu/family.mk (renamed from hw/bsp/fomu/board.mk)9
5 files changed, 153 insertions, 51 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 5da033cf8..a3ea0d978 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -28,8 +28,10 @@ jobs:
cd test
ceedling test:all
- # build all example for each family
- build-family:
+ # ---------------------------------------
+ # Build ARM family
+ # ---------------------------------------
+ build-arm:
runs-on: ubuntu-latest
strategy:
fail-fast: false
@@ -90,32 +92,17 @@ jobs:
asset_name: ${{ matrix.family }}-tinyusb-${{ github.event.release.tag_name }}-examples.zip
asset_content_type: application/zip
- # Build all no-family (opharned) boards
- build-board:
+ # ---------------------------------------
+ # Build RISC-V family
+ # ---------------------------------------
+ build-riscv:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
- example:
+ family:
# Alphabetical order
- - 'device/audio_test'
- - 'device/board_test'
- - 'device/cdc_dual_ports'
- - 'device/cdc_msc'
- - 'device/cdc_msc_freertos'
- - 'device/dfu_runtime'
- - 'device/hid_composite'
- - 'device/hid_composite_freertos'
- - 'device/hid_generic_inout'
- - 'device/hid_multiple_interface'
- - 'device/midi_test'
- - 'device/msc_dual_lun'
- - 'device/net_lwip_webserver'
- - 'device/uac2_headset'
- - 'device/usbtmc'
- - 'device/webusb_serial'
- - 'host/cdc_msc_hid'
-
+ - 'fomu'
steps:
- name: Setup Python
uses: actions/setup-python@v2
@@ -125,22 +112,76 @@ jobs:
- name: Checkout TinyUSB
uses: actions/checkout@v2
- with:
- submodules: 'true'
- - name: Install Toolchains
+ - name: Checkout Submodules in lib
+ run: git submodule update --init lib
+
+ - name: Install Toolchain
run: |
- # ARM & RISC-V GCC from xpack
+ # RISC-V GCC from xpack
npm install --global xpm
- xpm install --global @xpack-dev-tools/arm-none-eabi-gcc@latest
xpm install --global @xpack-dev-tools/riscv-none-embed-gcc@latest
- echo `echo $HOME/.local/xPacks/@xpack-dev-tools/arm-none-eabi-gcc/*/.content/bin` >> $GITHUB_PATH
echo `echo $HOME/.local/xPacks/@xpack-dev-tools/riscv-none-embed-gcc/*/.content/bin` >> $GITHUB_PATH
- name: Build
- run: python3 tools/build_board.py ${{ matrix.example }}
+ run: python3 tools/build_family.py ${{ matrix.family }}
+
+ - uses: actions/upload-artifact@v2
+ with:
+ name: ${{ matrix.family }}-tinyusb-examples
+ path: _bin/
+
+ - name: Create Release Asset
+ if: ${{ github.event_name == 'release' }}
+ run: |
+ cd _bin/
+ zip -r ../${{ matrix.family }}-tinyusb-${{ github.event.release.tag_name }}-examples.zip *
+
+ - name: Upload Release Asset
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ if: ${{ github.event_name == 'release' }}
+ with:
+ upload_url: ${{ github.event.release.upload_url }}
+ asset_path: ${{ matrix.family }}-tinyusb-${{ github.event.release.tag_name }}-examples.zip
+ asset_name: ${{ matrix.family }}-tinyusb-${{ github.event.release.tag_name }}-examples.zip
+ asset_content_type: application/zip
+
+ # ---------------------------------------
+ # Build ESP32S2 family
+ # ---------------------------------------
+ build-esp32s2:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ board:
+ # Alphabetical order
+ - 'adafruit_feather_esp32s2'
+ - 'adafruit_magtag_29gray'
+ - 'adafruit_metro_esp32s2'
+ - 'espressif_kaluga_1'
+ - 'espressif_saola_1'
+
+ steps:
+ - name: Setup Python
+ uses: actions/setup-python@v2
+
+ - name: Pull ESP-IDF docker
+ run: docker pull espressif/idf:latest
+
+ - name: Checkout TinyUSB
+ uses: actions/checkout@v2
+ with:
+ submodules: 'false'
+
+ - name: Build
+ run: docker run --rm -v $PWD:/project -w /project espressif/idf:latest python3 tools/build_esp32s2.py ${{ matrix.board }}
- # build all example for each family
+ # ---------------------------------------
+ # Build msp430 family
+ # ---------------------------------------
build-msp430:
runs-on: ubuntu-latest
steps:
@@ -199,32 +240,53 @@ jobs:
asset_path: ${{ env.family }}-tinyusb-${{ github.event.release.tag_name }}-examples.zip
asset_name: ${{ env.family }}-tinyusb-${{ github.event.release.tag_name }}-examples.zip
asset_content_type: application/zip
-
- # Build ESP32S2
- build-esp32s2:
+
+ # ---------------------------------------
+ # Build all no-family (opharned) boards
+ # ---------------------------------------
+ build-board:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
- board:
+ example:
# Alphabetical order
- - 'adafruit_feather_esp32s2'
- - 'adafruit_magtag_29gray'
- - 'adafruit_metro_esp32s2'
- - 'espressif_kaluga_1'
- - 'espressif_saola_1'
+ - 'device/audio_test'
+ - 'device/board_test'
+ - 'device/cdc_dual_ports'
+ - 'device/cdc_msc'
+ - 'device/cdc_msc_freertos'
+ - 'device/dfu_runtime'
+ - 'device/hid_composite'
+ - 'device/hid_composite_freertos'
+ - 'device/hid_generic_inout'
+ - 'device/hid_multiple_interface'
+ - 'device/midi_test'
+ - 'device/msc_dual_lun'
+ - 'device/net_lwip_webserver'
+ - 'device/uac2_headset'
+ - 'device/usbtmc'
+ - 'device/webusb_serial'
+ - 'host/cdc_msc_hid'
steps:
- name: Setup Python
uses: actions/setup-python@v2
- - name: Pull ESP-IDF docker
- run: docker pull espressif/idf:latest
+ - name: Setup Node.js
+ uses: actions/setup-node@v1
- name: Checkout TinyUSB
uses: actions/checkout@v2
with:
- submodules: 'false'
+ submodules: 'true'
+
+ - name: Install Toolchains
+ run: |
+ # ARM GCC from xpack
+ npm install --global xpm
+ xpm install --global @xpack-dev-tools/arm-none-eabi-gcc@latest
+ echo `echo $HOME/.local/xPacks/@xpack-dev-tools/arm-none-eabi-gcc/*/.content/bin` >> $GITHUB_PATH
- name: Build
- run: docker run --rm -v $PWD:/project -w /project espressif/idf:latest python3 tools/build_esp32s2.py ${{ matrix.board }}
+ run: python3 tools/build_board.py ${{ matrix.example }} \ No newline at end of file
diff --git a/examples/make.mk b/examples/make.mk
index c981d0de4..173f5598a 100644
--- a/examples/make.mk
+++ b/examples/make.mk
@@ -19,8 +19,10 @@ __check_defined = \
#-------------- Select the board to build for. ------------
# Board without family
-BOARD_PATH := $(subst $(TOP)/,,$(wildcard $(TOP)/hw/bsp/$(BOARD)))
+ifneq ($(wildcard $(TOP)/hw/bsp/$(BOARD)/board.mk),)
+BOARD_PATH := hw/bsp/$(BOARD)
FAMILY :=
+endif
# Board within family
ifeq ($(BOARD_PATH),)
diff --git a/hw/bsp/fomu/boards/fomu/board.h b/hw/bsp/fomu/boards/fomu/board.h
new file mode 100644
index 000000000..666ba1d98
--- /dev/null
+++ b/hw/bsp/fomu/boards/fomu/board.h
@@ -0,0 +1,40 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2021, Ha Thach (tinyusb.org)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * This file is part of the TinyUSB stack.
+ */
+
+#ifndef BOARD_H_
+#define BOARD_H_
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+// Place holder only
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif
diff --git a/hw/bsp/fomu/boards/fomu/board.mk b/hw/bsp/fomu/boards/fomu/board.mk
new file mode 100644
index 000000000..8ced11412
--- /dev/null
+++ b/hw/bsp/fomu/boards/fomu/board.mk
@@ -0,0 +1 @@
+# place holder \ No newline at end of file
diff --git a/hw/bsp/fomu/board.mk b/hw/bsp/fomu/family.mk
index f31dfec2a..f615216be 100644
--- a/hw/bsp/fomu/board.mk
+++ b/hw/bsp/fomu/family.mk
@@ -8,16 +8,13 @@ CFLAGS += \
# Cross Compiler for RISC-V
CROSS_COMPILE = riscv-none-embed-
-MCU_DIR = hw/mcu/fomu
-BSP_DIR = hw/bsp/fomu
-
# All source paths should be relative to the top level.
-LD_FILE = hw/bsp/$(BOARD)/fomu.ld
+LD_FILE = $(FAMILY_PATH)/fomu.ld
-SRC_S += hw/bsp/$(BOARD)/crt0-vexriscv.S
+SRC_S += $(FAMILY_PATH)/crt0-vexriscv.S
INC += \
- $(TOP)/$(BSP_DIR)/include
+ $(TOP)/$(FAMILY_PATH)/include
# For TinyUSB port source
VENDOR = valentyusb