Skip to content

Commit

Permalink
Import and refactor from previous repository
Browse files Browse the repository at this point in the history
You can find the previous history in
https://github.com/redhat-et/jumpstarter-board/

Signed-off-by: Miguel Angel Ajo Pelayo <[email protected]>
  • Loading branch information
mangelajo committed Jan 5, 2024
1 parent 67e646e commit fb437e7
Show file tree
Hide file tree
Showing 37 changed files with 3,858 additions and 1 deletion.
43 changes: 43 additions & 0 deletions .github/workflows/build-firmware.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Build
on: [push, pull_request]
jobs:
bootloader-build:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- run: sudo apt-get install -y make podman
- name: Setup the builder image
run: |
cd firmware/bootloader
make .build-container
- name: Build the firmware
run: |
cd firmware/bootloader
make in-container
- name: Archive resulting bootloader
uses: actions/upload-artifact@v3
with:
name: jumpstarter-bootloader-dfu.bin
path: firmware/bootloader/dfu-bootloader.bin

application-build:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- run: sudo apt-get install -y make podman
- name: Setup the builder image
run: |
cd firmware/application
make .build-container
- name: Build the firmware
run: |
cd firmware/application
make in-container
- name: Archive resulting application
uses: actions/upload-artifact@v3
with:
name: jumpstarter-main.cab
path: firmware/application/jumpstarter*

45 changes: 45 additions & 0 deletions .github/workflows/publish-binaries.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
on:
release:
types: [created]

permissions:
contents: write
packages: write

jobs:
firmware-release:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- run: sudo apt-get install -y make podman
- name: Setup the builder image
run: |
cd firmware/bootloader
make .build-container
- name: Build the bootloader firmware
run: |
cd firmware/bootloader
make in-container
- name: Build the application firmware
run: |
cd firmware/application
make in-container
- name: Prepare all binaries in one directory
run: |
mkdir release
cp firmware/bootloader/*.bin release
cp firmware/application/*.bin release
cp firmware/application/*.cab release
ls -la release/
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: release/*
asset_name: firmware
tag: ${{ github.ref }}
overwrite: true
body: "Automated release based on tag creation"
file_glob: true
45 changes: 44 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,44 @@
# dutlink-firmware
# dutlink-board firmware

This repository contains the firmware for the [dutlink-board](https://github.com/jumpstarter-dev/dutlink-board) project, a project within jumpstarter
that enables easy testing and development of SOC/SOM and other systems with Hardware in the Loop.

Jumpstarter is a project designed to enable generic Hardware in the Loop testability for Edge / embedded designs.

The firmware is written in Rust, and it is made of two parts:
* The bootloader, which enables seamless firmware updates via the [fwupd](https://fwupd.org) project.
* The application, which provides the functionality described in the following sections.


you can find out more about jumpstarter in https://jumpstarter.dev

# Description

The DUTLink board communicates with a host via USB, enabling the switching of a USB3 storage device
between the DUT and the Test host. This enables very fast storage injection on the DUT,
and very fast lifecycles for testing.

In addition DUTLink can control power, provide console access via TX/RX UART, and measure power
consumption. See features for a more detailed insight.


## Features

* USB Storage sharing
* A storage device can be connected to the Testing host, and then passed down to the DUT
* USB3.1 (up to 5Gbps, potentially 10Gbps future releases) capable
* USB3.0 and 2.0 capable for backwards compatibility
* Storage device power cycling

* DUT Power management:
* ON/OFF, Reset, Reboot
* Power consumption measurement and logging in watts
* 5-25V power supply support
* USB-PD power supply support 5-20V with DUT power negotiation

* DUT Control (3.3v I/O)
* UART Serial port TX/RX (for logging and tracing)
* 4 customizable control signals
* RESET signal


11 changes: 11 additions & 0 deletions application/.cargo/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[target.thumbv7em-none-eabihf]
runner = 'probe-run --chip STM32F411CEUx'
rustflags = [
"-C", "link-arg=-Tlink.x",
]

[build]
target = "thumbv7em-none-eabihf"

[env]
DEFMT_LOG = "info"
7 changes: 7 additions & 0 deletions application/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"rust-analyzer.linkedProjects": [
"./Cargo.toml"
],
"rust-analyzer.cargo.target": "thumbv7em-none-eabihf",
"rust-analyzer.checkOnSave.allTargets": false,
}
Loading

0 comments on commit fb437e7

Please sign in to comment.