Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • beaglev-fire/gateware
  • jkridner/gateware
  • blavin3/gateware
  • cyril-jean/my-lovely-gateware
  • RobertCNelson/gateware
  • Aven/aven-gateware
  • coaic/gateware
  • aloveday/tdogg-gateware
  • cshegedus/my-lovely-gateware
  • Seth/fire-gate
  • Platima/snakeyware
  • lorforlinux/gpio-leds-gateware
  • jonsmc/test-gateware
  • johnnyw66/gateware
  • jkridner/gateware-serv-on-fire
  • NachtSpyder04/gateware
  • jkridner/snakeyware
  • cyril-jean/gateware-ci-tests-rework
  • malkowkiorg/mppgateware
  • gsoc/2024/riscv-io-core
  • cyril-jean/gateware-custom-test
  • cyril-jean/gateware-ci-deploy-fix
  • turaib/gateware
  • bustedwing1/gateware-fork
  • fred27/fred-gateware
  • rexxar/beaglevfire-gateway
  • cyril-jean/gateware-overlays-fix
  • Lianghao/my-lovely-gateware
  • himanshuk/gateware
  • ahmedf/my-lovely-gateware
  • Pronadeep2024/my-new-gateware
  • venkatmakam/gateware-test
  • jcm/my-cute-gateware
  • AdrianHerCoss/adrian-s-gateware
  • cyril-jean/gateware-maintenance
  • mariaukanwa/exampleware
  • trottpb/camera-display-gateware
  • cdsteinkuehler/gateware
  • kikuhobby/beagle-v-fire-gateware
  • cyril-jean/gateware-hub-75
  • jennifermah76/gateware
  • DarrenWenn/hub-75
  • AndyCap/gateware-test-1
  • vauban-xyz/gateware-xyz-uav
  • sbss1/my-lovely-gateware
  • Ninicoco/snakeyware
  • epenguin/e-penguins-gateware
  • MikeJames2024/gateware
  • superchamp234/pwm-demo-gateware
  • Roger18/riscv-io-core
  • superchamp234/comms-cape-gateware
  • CLappin/gateware
  • superchamp234/mem-access-gateware
  • superchamp234/miv-gateware
  • superchamp234/lsram-application
  • j-a-s-22/my-lovely-gateware
  • samjeffery/sam-jeffery-snakey
  • prabritb/blinkled
  • TestOLab/blinky-test
  • KG/gateware-tutorial
  • lranders/lsram-application
  • lranders/gateware
  • usernamenaijan/my-gateware
  • superchamp234/simple-lsram
  • patsv99/patsv-99-can-gateware
  • liv_heaton/my-lovely-gateware
  • wcookiii/misc-polar1
  • burkeb543/gateware
  • kubeks57/risc
  • DmitriLyalikov/beagle-v-gateware-odin
  • devadatta/gatewaretest
  • foxof/gateware
  • prajnark/gateware
  • jfkfhhfj/gateware-at
  • prauby/gateware-beagle-v-fire
  • lranders/gateware-tutorial
  • ashuk-cloudsci/amass-1
  • msaldana/gateware
  • crispc85/pam-gateware-test
  • marco_ferreira/my-lovely-gateware
  • iriszero/gateware
  • flxzt/socfpga-course-beaglev-fire-gateware
  • willlu/gateware-willlu
  • spmishra/gateware
  • amitra/gateware
  • codechaser/lsram-dma-gateware
  • Luciana.lm11/testing-gateware
  • lranders/riscv-io-core
  • mars17/goldenware
  • inigoexai/gateware
  • hardi8/gatewaregalvo
91 results
Show changes
Commits on Source (108)
Showing
with 446 additions and 16 deletions
stages: # List of stages for jobs, and their order of execution
- build
- deploy
build-job: # This job runs in the build stage, which runs first.
stage: build
tags:
- libero-soc-v2023.2
variables:
BUILD_OPTIONS_DIRECTORY: "custom-fpga-design"
REPO_UNDER_TEST: $CI_PROJECT_URL
BRANCH_UNDER_TEST: $CI_COMMIT_REF_NAME
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE == "beaglev-fire"
variables:
BUILD_OPTIONS_DIRECTORY: "build-options"
- if: $CI_PROJECT_ROOT_NAMESPACE != "beaglev-fire"
# Use the default variables' values.
script:
- echo "Compiling the code..."
- export
- source ~/Microchip/Microchip-FPGA-Tools-Setup/setup-microchip-tools.sh
- git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@git.beagleboard.org/beaglev-fire/gateware-builds-tester.git
- cd gateware-builds-tester
- git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@git.beagleboard.org/beaglev-fire/bitstream-builder.git -b develop
- python3 bitstream-builds-tester.py ci gateware "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
- echo "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"
- echo "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
- echo "Building the gateware..."
- python3 create-release.py $BUILD_OPTIONS_DIRECTORY
- echo "Compile complete."
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
artifacts:
when: always
when: on_success
paths:
- gateware-builds-tester/artifacts/tests_report.xml
- gateware-builds-tester/artifacts.zip
- artifacts/bitstreams
- artifacts/build_logs
- artifacts/debian
- artifacts/debian-custom
reports:
junit: gateware-builds-tester/artifacts/tests_report.xml
junit: artifacts/tests_report.xml
pages:
image: robertcnelson/beagle-devscripts-ubuntu-24.04-riscv64:latest
# Ubuntu 23.04 packages archive has been shutdown, move to noble (lts) 24.04, for legacy, this image is still published..
# image: robertcnelson/beagle-devscripts-ubuntu-23.04-riscv64:latest
# https://openbeagle.org/beagleboard/ci-docker-images
stage: deploy
tags:
- docker-riscv64-ci
variables:
BUILD_OPTIONS_DIRECTORY: "custom-fpga-design"
REPO_UNDER_TEST: $CI_PROJECT_URL
BRANCH_UNDER_TEST: $CI_COMMIT_REF_NAME
DEBIAN_CHANGELOG_PKG: "bbb.io-gateware-my-custom-fpga-design"
DEBIAN_SRC: "debian-custom"
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE == "beaglev-fire" && ($CI_COMMIT_TAG || $CI_COMMIT_BRANCH == "main")
variables:
BUILD_OPTIONS_DIRECTORY: "build-options"
DEBIAN_CHANGELOG_PKG: "bbb.io-gateware"
DEBIAN_SRC: "debian"
- if: $CI_PROJECT_ROOT_NAMESPACE != "beaglev-fire"
# Use the default variables' values.
script:
- rm -rf ./src/ || true
- mkdir -p ./src/debian/ || true
- rsync -av ./artifacts/$DEBIAN_SRC/* ./src/debian/
- mkdir -p ./src/gateware-builds-tester || true
- rsync -av ./artifacts ./src/gateware-builds-tester/
- echo "$DEBIAN_CHANGELOG_PKG (1.$(LANG=C date +%Y%m%d).0-0~noble) noble; urgency=low" > ./src/debian/changelog
- echo "" >> ./src/debian/changelog
- echo " * ci build of $CI_PROJECT_URL" >> ./src/debian/changelog
- echo "" >> ./src/debian/changelog
- echo " -- $GITLAB_USER_NAME <$GITLAB_USER_EMAIL> $(LANG=C date -R)" >> ./src/debian/changelog
- echo "" >> ./src/debian/changelog
- cat ./src/debian/changelog
- cd ./src/ ; debuild -b -us -uc ; cd ../
- mkdir -p ./public/dists/stable/main/binary-riscv64/
- mkdir -p ./public/pool
- cp -v *.deb ./public/pool/ || true
- cp -v *.build ./public/ || true
- cp -v *.buildinfo ./public/ || true
- cd ./public ; dpkg-scanpackages ./pool/ | gzip > ./dists/stable/main/binary-riscv64/Packages.gz || true ; cd ../
- apindex public
artifacts:
when: on_success
paths:
- public
MIT License
Copyright (c) 2022 vauban353
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.
# BeagleV Fire Gateware Builder
## Introduction
The BeagleV Fire gateware builder is a Python script that builds both the PolarFire SoC HSS bootloader and Libero FPGA project into a single programming bitstream. It uses a list of repositories/branches specifying the configuration of the BeagleV Fire to build.
## Prerequisites
### Python libraries
The following Python libraries are used:
- GitPython
- PyYAML
```
pip3 install gitpython
pip3 install pyyaml
```
### Microchip Tools
The SoftConsole and Libero tools from Microchip are required by the bitstream builder.
The following environment variables are required for the bitstream builder to use the Microchip tools:
- SC_INSTALL_DIR
- FPGENPROG
- LIBERO_INSTALL_DIR
- LM_LICENSE_FILE
An example script for setting up the environment is available [here](https://openbeagle.org/beaglev-fire/Microchip-FPGA-Tools-Setup).
## Usage
```
python3 build-bitstream.py <YAML Configuration File>
```
For example, the following command will be build the default beagleV Fire configuration:
```
python3 build-bitstream.py ./build-options/default.yaml
```
### YAML Configuration Files
The YAML configuration files are located in the "build-options" directory.
| Configuration File | Description |
| ------------------ | ---------------------------------------------------------- |
| default.yaml | Default gateware including default cape and M.2 interface. |
| minimal.yaml | Minimal Linux system including Ethernet. No FPGA gateware. |
| robotics.yaml | Similar to default but supporting the Robotics cape. |
## Supported Platforms
The BeagleV Fire gateware builder has been tested on Ubuntu 20.04.
## Microchip bitstream-builder
The BeagleV-Fire gateware builder is derived from [Microchip's bitstream-builder ](https://github.com/polarfire-soc/icicle-kit-minimal-bring-up-design-bitstream-builder). We recommend that you use either of these scripts as a starting point for your own PolarFire SoC FPGA designs as opposed to using Libero in isolation.
\ No newline at end of file
---
Board_Selected: bvf
Boards:
bvf:
Die: MPFS025T
Package: FCVG484
Die_voltage: 1.0
Part_range: EXT
mpfs-icicle-kit-es:
Die: MPFS250T_ES
Package: FCVG484
Die_voltage: 1.05
Part_range: EXT
mpfs-disco-kit:
Die: MPFS095T
Package: FCSG325
Die_voltage: 1.0
Part_range: EXT
mpfs-video-kit:
Die: MPFS250TS
Package: FCG1152
Die_voltage: 1.0
Part_range: IND
aries-m100pfsevp:
Die: MPFS250TS
Package: FCG1152
Die_voltage: 1.0
Part_range: IND
\ No newline at end of file
# The BeagleV Fire Bitstream Builder is released under the following software license:
# Copyright 2021 Microchip Corporation.
# SPDX-License-Identifier: MIT
# 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.
# The BeagleV Fire Bitstream Builder is an evolution of the Microchip
# Bitstream Builder available from:
# https://github.com/polarfire-soc/icicle-kit-minimal-bring-up-design-bitstream-builder
#
import argparse
import os
import sys
import gateware_scripts
from gateware_scripts.build_gateware import build_gateware
global yaml_input_file
# Parse command line arguments and set tool locations
def parse_arguments():
global yaml_input_file
# Initialize parser
parser = argparse.ArgumentParser()
parser.add_argument('Path',
metavar='path',
type=str,
help='Path to the YAML file describing the list of sources used to build the bitstream.')
# Read arguments from command line
args = parser.parse_args()
yaml_input_file_arg = args.Path
if not os.path.isfile(yaml_input_file_arg):
print("\r\n!!! The path specified for the YAML input file does not exist !!!\r\n")
parser.print_help()
sys.exit()
yaml_input_file = os.path.abspath(yaml_input_file_arg)
def main():
global yaml_input_file
parse_arguments()
build_gateware(yaml_input_file, ".", ".", "board-options")
if __name__ == '__main__':
main()
---
HSS:
type: git
link: https://openbeagle.org/beaglev-fire/hart-software-services.git
branch: main-beaglev-fire
make_clean: 0
gateware:
type: sources
build-args: "CAPE_OPTION:GPIOS MIPI_CSI_OPTION:NONE M2_OPTION:BOARD_TESTS SYZYGY_OPTION:BOARD_TESTS_SEEED_STUDIO"
unique-design-version: 0.0.4
---
HSS:
type: git
link: https://openbeagle.org/beaglev-fire/hart-software-services.git
branch: main-beaglev-fire
make_clean: 0
gateware:
type: sources
build-args: "M2_OPTION:PCIE_ONLY CAPE_OPTION:4_UARTS "
unique-design-version: 4.0.1
---
HSS:
type: git
link: https://openbeagle.org/beaglev-fire/hart-software-services.git
branch: main-beaglev-fire
make_clean: 0
gateware:
type: sources
build-args: "M2_OPTION:NONE CAPE_OPTION:COMMS_CAPE"
---
HSS:
type: git
link: https://openbeagle.org/beaglev-fire/hart-software-services.git
branch: main-beaglev-fire
make_clean: 0
gateware:
type: sources
unique-design-version: 2.0.4
---
HSS:
type: git
link: https://github.com/polarfire-soc/hart-software-services.git
branch: master
make_clean: 0
gateware:
type: sources
build-args: "M2_OPTION:NONE CAPE_OPTION:NONE"
unique-design-version: 0.0.1
# In development
# Won't be a separate yaml file in future for different boards - all HSS's will be in one repo
\ No newline at end of file
---
HSS:
type: git
link: https://openbeagle.org/beaglev-fire/hart-software-services.git
branch: main-beaglev-fire
make_clean: 0
gateware:
type: sources
build-args: "M2_OPTION:NONE CAPE_OPTION:NONE"
unique-design-version: 1.0.4
---
HSS:
type: git
link: https://openbeagle.org/beaglev-fire/hart-software-services.git
branch: main-beaglev-fire
make_clean: 0
gateware:
type: sources
build-args: "CAPE_OPTION:ROBOTICS "
unique-design-version: 3.0.5
# The BeagleV Fire Bitstream Builder is released under the following software license:
# Copyright 2021 Microchip Corporation.
# SPDX-License-Identifier: MIT
# 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.
# The BeagleV Fire Bitstream Builder is an evolution of the Microchip
# Bitstream Builder available from:
# https://github.com/polarfire-soc/icicle-kit-minimal-bring-up-design-bitstream-builder
#
import argparse
from gateware_scripts.create_release import create_release
def parse_arguments():
# Initialize parser
parser = argparse.ArgumentParser()
parser.add_argument('BuildOptionsDir',
type=str,
help="Directory containing the gateware build options to build.",
action="store",
default="build-options",
nargs='?')
# Read argument(s) from command line
args = parser.parse_args()
return args.BuildOptionsDir
def main():
build_options_dir_name = parse_arguments()
create_release(build_options_dir_name)
if __name__ == '__main__':
main()
---
HSS:
type: git
link: https://openbeagle.org/beaglev-fire/hart-software-services.git
branch: main-beaglev-fire
board: bvf
gateware:
type: sources
build-args: "M2_OPTION:NONE CAPE_OPTION:VERILOG_TUTORIAL"
gateware-builds-tester/artifacts/bitstreams/my_custom_fpga_design/DirectC/* /usr/share/beagleboard/gateware/my_custom_fpga_design/DirectC
gateware-builds-tester/artifacts/bitstreams/my_custom_fpga_design/FlashProExpress/* /usr/share/beagleboard/gateware/my_custom_fpga_design/FlashProExpress
gateware-builds-tester/artifacts/bitstreams/my_custom_fpga_design/LinuxProgramming/* /usr/share/beagleboard/gateware/my_custom_fpga_design/LinuxProgramming
\ No newline at end of file
bbb.io-gateware-my-custom-fpga-design (1.20231226.0-0~noble) noble; urgency=low
* ci build of https://openbeagle.org/beaglev-fire/gateware
-- Robert Nelson <robertcnelson@beagleboard.org> Tue, 26 Dec 2023 17:41:26 +0000
10
Source: bbb.io-gateware-my-custom-fpga-design
Section: misc
Priority: extra
Maintainer: Robert Nelson <robertcnelson@gmail.com>
Build-Depends:
debhelper (>= 10)
Standards-Version: 4.5.1
Package: bbb.io-gateware-my-custom-fpga-design
Architecture: all
Depends:
${shlibs:Depends}
, ${misc:Depends}
, bbb.io-gateware
, mtd-utils
Description: bbb.io-gateware-my-custom-fpga-design
bbb.io-gateware-my-custom-fpga-design
#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
DH_VERBOSE = 1
%:
dh $@
override_dh_builddeb:
dh_builddeb -- -Zxz
debian/change-gateware.sh /usr/share/beagleboard/gateware
debian/update-gateware.sh /usr/share/microchip/gateware
debian/mcp356x_read.py /usr/share/microchip/gateware
gateware-builds-tester/artifacts/bitstreams/board-tests/DirectC/* /usr/share/beagleboard/gateware/board-tests/DirectC
gateware-builds-tester/artifacts/bitstreams/board-tests/FlashProExpress/* /usr/share/beagleboard/gateware/board-tests/FlashProExpress
gateware-builds-tester/artifacts/bitstreams/board-tests/LinuxProgramming/* /usr/share/beagleboard/gateware/board-tests/LinuxProgramming
gateware-builds-tester/artifacts/bitstreams/default/DirectC/* /usr/share/beagleboard/gateware/default/DirectC
gateware-builds-tester/artifacts/bitstreams/default/FlashProExpress/* /usr/share/beagleboard/gateware/default/FlashProExpress
gateware-builds-tester/artifacts/bitstreams/default/LinuxProgramming/* /usr/share/beagleboard/gateware/default/LinuxProgramming
gateware-builds-tester/artifacts/bitstreams/minimal/DirectC/* /usr/share/beagleboard/gateware/minimal/DirectC
gateware-builds-tester/artifacts/bitstreams/minimal/FlashProExpress/* /usr/share/beagleboard/gateware/minimal/FlashProExpress
gateware-builds-tester/artifacts/bitstreams/minimal/LinuxProgramming/* /usr/share/beagleboard/gateware/minimal/LinuxProgramming
gateware-builds-tester/artifacts/bitstreams/robotics/DirectC/* /usr/share/beagleboard/gateware/robotics/DirectC
gateware-builds-tester/artifacts/bitstreams/robotics/FlashProExpress/* /usr/share/beagleboard/gateware/robotics/FlashProExpress
gateware-builds-tester/artifacts/bitstreams/robotics/LinuxProgramming/* /usr/share/beagleboard/gateware/robotics/LinuxProgramming