Some checks failed
ci / Check build (pull_request) Has been cancelled
ci / Check formatting (pull_request) Has been cancelled
ci / Check Documentation Build (pull_request) Has been cancelled
ci / Clippy (pull_request) Has been cancelled
ci / Check build (push) Has been cancelled
ci / Check formatting (push) Has been cancelled
ci / Check Documentation Build (push) Has been cancelled
ci / Clippy (push) Has been cancelled
This PR introduces some major features while also changing the project structure to be more flexible for multiple platforms (e.g. host tooling). It also includes a lot of bugfixes, renamings for consistency purposes and dependency updates. Added features: 1. Pure Rust FSBL for the Zedboard. This first variant is simplistic. It is currently only capable of QSPI boot. It searches for a bitstream and ELF file inside the boot binary, flashes them and jumps to them. 2. QSPI flasher for the Zedboard. 3. DDR, QSPI, DEVC, private CPU timer and PLL configuration modules 3. Tooling to auto-generate board specific DDR and DDRIOB config parameters from the vendor provided ps7init.tcl file Changed project structure: 1. All target specific project are inside a dedicated workspace inside the `zynq` folder now. 2. All tool intended to be run on a host are inside a `tools` workspace 3. All other common projects are at the project root Major bugfixes: 1. SPI module: CPOL was not configured properly 2. Logger flush implementation was empty, implemented properly now.
46 lines
1.7 KiB
Makefile
46 lines
1.7 KiB
Makefile
all: check-all build-all clean-all fmt-all clippy-all docs-zynq
|
|
|
|
check-all: (check "zynq") (check "tools") (check "zynq7000-boot-image")
|
|
clean-all: (clean "zynq") (clean "tools") (clean "zynq7000-boot-image")
|
|
build-all: build-zynq (build "tools") (build "zynq7000-boot-image")
|
|
fmt-all: (fmt "zynq") (fmt "tools") (fmt "zynq7000-boot-image")
|
|
clippy-all: (clippy "zynq") (clippy "tools") (clippy "zynq7000-boot-image")
|
|
|
|
check target:
|
|
cd {{target}} && cargo check
|
|
|
|
build target:
|
|
cd {{target}} && cargo build
|
|
|
|
build-zynq: (build "zynq")
|
|
cd "zynq/zedboard-fsbl" && cargo build --release
|
|
|
|
clean target:
|
|
cd {{target}} && cargo clean
|
|
|
|
fmt target:
|
|
cd {{target}} && cargo +stable fmt --all -- --check
|
|
|
|
clippy target:
|
|
cd {{target}} && cargo clippy -- -D warnings
|
|
|
|
[working-directory: 'zynq']
|
|
docs-zynq:
|
|
RUSTDOCFLAGS="--cfg docsrs --generate-link-to-definition -Z unstable-options" cargo +nightly doc -p zynq7000
|
|
RUSTDOCFLAGS="--cfg docsrs --generate-link-to-definition -Z unstable-options" cargo +nightly doc -p zynq7000-hal --features alloc
|
|
RUSTDOCFLAGS="--cfg docsrs --generate-link-to-definition -Z unstable-options" cargo +nightly doc -p zynq7000-mmu
|
|
RUSTDOCFLAGS="--cfg docsrs --generate-link-to-definition -Z unstable-options" cargo +nightly doc -p zynq7000-rt
|
|
|
|
[working-directory: 'zynq-boot-image/staging']
|
|
bootgen:
|
|
bootgen -arch zynq -image boot.bif -o boot.bin -w on
|
|
echo "Generated boot.bin at zynq-boot-image/staging"
|
|
|
|
[no-cd]
|
|
run binary:
|
|
# Run the initialization script. It needs to be run inside the justfile directory.
|
|
python3 {{justfile_directory()}}/scripts/zynq7000-init.py
|
|
|
|
# Run the GDB debugger in GUI mode.
|
|
gdb-multiarch -q -x {{justfile_directory()}}/zynq/gdb.gdb {{binary}} -tui
|