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.
pca006132 22833ef0c6 libconfig/sd_reader: added FAT16_LBA ID 5 days ago
.cargo cargo: remove unmaintained runner 1 month ago
experiments experiments: fix zc706 build 1 month ago
libasync update some dependencies 1 week ago
libboard_zynq fix ps7_init compilation error and warnings 3 weeks ago
libconfig libconfig/sd_reader: added FAT16_LBA ID 5 days ago
libcoreio add libconfig, libcoreio, szl from artiq-zynq a277e89b3ad; update dependencies 1 month ago
libcortex_a9 add Red Pitaya support (WIP) 1 month ago
libregister update authors in cargo.toml 1 month ago
libsupport_zynq add Red Pitaya support (WIP) 1 month ago
nix update Rust 1 week ago
openocd add Red Pitaya support (WIP) 1 month ago
szl libconfig: make default IP/MAC depend on board 1 week ago
.gitignore remove zc706.elf from gitignore 9 months ago
Cargo.lock update some dependencies 1 week ago
Cargo.toml add libconfig, libcoreio, szl from artiq-zynq a277e89b3ad; update dependencies 1 month ago
README.md README: add introduction 3 weeks ago
armv7-none-eabihf.json define custom target, use with cargo-xbuild 1 year ago
default.nix add SZL for Red Pitaya 1 week ago
remote_run.sh add remote run script 4 months ago
shell.nix expose patched cargo-xbuild 1 week ago
xbuild_writable_lockfile.diff patch cargo-xbuild to ensure copied Cargo.lock is writable 1 week ago

README.md

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:

  • ZC706
  • Red Pitaya (note: SDRAM issues, worked around using ps7_init)
  • Cora Z7-10 (note: SDRAM issues)

Build

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

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

Debug

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_cora_z7_10"
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"