diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f55824e..f66e279 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,9 +20,24 @@ variables: GIT_SUBMODULE_STRATEGY: recursive stages: # List of stages for jobs, and their order of execution + - toolchain - build + - simulate -build-fpga: # This job runs in the build stage, which runs first. +build toolchain: + tags: + - linux + stage: toolchain + script: + - source init_env.sh + - cd sw/cc65 + - make -j + artifacts: + paths: + - sw/cc65/bin + - sw/cc65/lib + +build fpga: # This job runs in the build stage, which runs first. tags: - efinity - linux @@ -32,15 +47,52 @@ build-fpga: # This job runs in the build stage, which runs first. - cd hw/efinix_fpga - make -build-sim: +build sim: tags: - iverilog - linux stage: build + artifacts: + paths: + - hw/efinix_fpga/simulation/sim_top + - hw/efinix_fpga/simulation/init_hex.mem script: - source init_env.sh - - cd sw/cc65 - - make -j - - cd ../.. - cd hw/efinix_fpga/simulation - make + dependencies: + - build toolchain + +build bios: + tags: + - linux + stage: build + script: + - source init_env.sh + - cd sw/ + - make bios + dependencies: + - build toolchain + +build kernel: + tags: + - linux + stage: build + script: + - source init_env.sh + - cd sw/ + - make kernel + dependencies: + - build toolchain + +run sim: + tags: + - linux + - iverilog + stage: simulate + script: + - source init_env.sh + - cd hw/efinix_fpga/simulation + - vvp sim_top + dependencies: + - build sim diff --git a/init_env.sh b/init_env.sh index 46419d9..443f828 100644 --- a/init_env.sh +++ b/init_env.sh @@ -3,6 +3,8 @@ # ENV=".env/$HOSTNAME" +export REPO_TOP=$(git rev-parse --show-toplevel) + # if [ ! -d "$ENV" ]; then # mkdir -p "$ENV" # fi @@ -19,8 +21,11 @@ # source "$ENV/efinity/2023.1/bin/setup.sh" # export PATH=$PATH:"$EFXPT_HOME/bin" -source $EFX_SETUP -export REPO_TOP=$(git rev-parse --show-toplevel) +if [ -n "$EFX_SETUP" ]; then + source $EFX_SETUP +else + echo "EFX_SETUP not defined!" +fi # python -m venv .user_venv --system-site-packages diff --git a/sw/Makefile b/sw/Makefile index c379713..a47ed42 100644 --- a/sw/Makefile +++ b/sw/Makefile @@ -1,6 +1,6 @@ -.PHONY: all install bootloader kernel clean +.PHONY: all install bios kernel clean -all: toolchain bootloader kernel +all: toolchain bios kernel install: all sh script/format_disk.sh @@ -9,8 +9,8 @@ install: all toolchain: @$(MAKE) -j4 -C cc65 -bootloader: - @$(MAKE) -C bootloader +bios: + @$(MAKE) -C bios kernel: @$(MAKE) -C kernel