Bare-metal Rust on the Xilinx Zynq ZC706 devkit
Go to file
Sebastien Bourdeauducq 7c9edfdbd5 README: add introduction 2020-09-29 16:27:44 +08:00
.cargo cargo: remove unmaintained runner 2020-09-09 15:01:39 +08:00
experiments experiments: fix zc706 build 2020-09-09 21:30:56 +08:00
libasync update authors in cargo.toml 2020-09-09 19:36:25 +08:00
libboard_zynq libboard_zynq/eth/phy: add PEF7071 2020-09-29 16:01:54 +08:00
libconfig add libconfig, libcoreio, szl from artiq-zynq a277e89b3ad; update dependencies 2020-09-09 17:56:50 +08:00
libcoreio add libconfig, libcoreio, szl from artiq-zynq a277e89b3ad; update dependencies 2020-09-09 17:56:50 +08:00
libcortex_a9 add Red Pitaya support (WIP) 2020-09-09 20:10:05 +08:00
libregister update authors in cargo.toml 2020-09-09 19:36:25 +08:00
libsupport_zynq add Red Pitaya support (WIP) 2020-09-09 20:10:05 +08:00
nix sync nix files with artiq-zynq c3f9a76f2a; add fsbl 2020-09-09 16:51:50 +08:00
openocd add Red Pitaya support (WIP) 2020-09-09 20:10:05 +08:00
szl add libconfig, libcoreio, szl from artiq-zynq a277e89b3ad; update dependencies 2020-09-09 17:56:50 +08:00
.gitignore remove zc706.elf from gitignore 2020-01-16 02:13:11 +08:00
Cargo.lock add libconfig, libcoreio, szl from artiq-zynq a277e89b3ad; update dependencies 2020-09-09 17:56:50 +08:00
Cargo.toml add libconfig, libcoreio, szl from artiq-zynq a277e89b3ad; update dependencies 2020-09-09 17:56:50 +08:00
README.md README: add introduction 2020-09-29 16:27:44 +08:00
armv7-none-eabihf.json define custom target, use with cargo-xbuild 2019-08-06 22:03:04 +02:00
default.nix default.nix: build redpitaya-experiments 2020-09-09 21:28:32 +08:00
remote_run.sh add remote run script 2020-06-04 19:57:52 +08:00
shell.nix add libconfig, libcoreio, szl from artiq-zynq a277e89b3ad; update dependencies 2020-09-09 17:56:50 +08:00

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"