Bare-metal Rust on Zynq-7000
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sb10q e31adb722d README: add Kasli-SoC 6 months ago
.cargo cargo: remove unmaintained runner 1 year ago
experiments libsupport_zynq: fix stack pointer problems 10 months ago
libasync libasync: provide get/set ack_delay (new in smoltcp 0.7.0) 10 months ago
libboard_zynq libboard_zynq: work around Kasli-SoC MDIO breakage (#78) 6 months ago
libconfig add feature target_kasli_soc to libsupport_zynq, libconfig, experiments, szl, default.nix 1 year ago
libcortex_a9 libcortex_a9: added interrupt_handler macro 10 months ago
libregister libregister: allow rustdoc for register! macro 1 year ago
libsupport_zynq libsupport_zynq: fix stack pointer problems 10 months ago
nix update Rust 10 months ago
openocd openocd: fix Kasli-SoC nSRST 6 months ago
szl szl: update copyright year 6 months ago
.gitignore remove zc706.elf from gitignore 2 years ago
Cargo.lock use updated upstream core_io 6 months ago
Cargo.toml use updated upstream core_io 6 months ago
LICENSE LGPLv3 8 months ago README: add Kasli-SoC 6 months ago
armv7-none-eabihf.json define custom target, use with cargo-xbuild 2 years ago
default.nix update cargosha256 6 months ago add Kasli-SoC POR control program 6 months ago clean up getopts 1 year ago
shell.nix libsupport_zynq: custom memcpy 11 months ago
xbuild_writable_lockfile.diff patch cargo-xbuild to ensure copied Cargo.lock is writable 1 year ago

Bare-metal Rust on Zynq-7000

Supported features:

  • Clocking setup
  • UART
  • SDRAM setup
  • Ethernet with smoltcp and async-await on TCP sockets
  • SD card
  • PL programming and startup
  • Pure Rust SZL first-stage bootloader, with SD boot and netboot
  • Control of second CPU core and message passing, with async-await support

Supported boards:

  • Kasli-SoC
  • ZC706
  • Red Pitaya
  • Cora Z7-10 (seems to also run on Cora Z7-07S, including dual-core support)


nix-shell --command "cargo xbuild --release -p experiments"

Currently the ELF output is placed at target/armv7-none-eabihf/release/experiments


Running on the ZC706

nix-shell --command "cargo xbuild --release -p experiments"
cd openocd
openocd -f zc706.cfg

Running on the Cora Z7-10

nix-shell --command "cd experiments && cargo xbuild --release --no-default-features --features=target_coraz7"
cd openocd
openocd -f cora-z7-10.cfg

Loading a bitstream into volatile memory

openocd -f zc706.cfg -c "pld load 0 blinker_migen.bit; exit"


Copyright (C) 2019-2021 M-Labs Limited. Released under the GNU LGPL v3. See the LICENSE file for details.