2020-09-29 16:27:44 +08:00
|
|
|
# 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
|
2019-05-25 08:38:05 +08:00
|
|
|
|
|
|
|
```shell
|
2020-08-11 11:24:21 +08:00
|
|
|
nix-shell --command "cargo xbuild --release -p experiments"
|
2019-05-25 08:38:05 +08:00
|
|
|
```
|
|
|
|
|
2020-01-26 08:45:02 +08:00
|
|
|
Currently the ELF output is placed at `target/armv7-none-eabihf/release/experiments`
|
2020-01-24 07:04:16 +08:00
|
|
|
|
2020-09-29 16:27:44 +08:00
|
|
|
## Debug
|
2019-05-20 07:21:48 +08:00
|
|
|
|
2020-09-29 16:27:44 +08:00
|
|
|
### Running on the ZC706
|
2019-05-25 08:38:05 +08:00
|
|
|
|
2019-06-29 08:41:36 +08:00
|
|
|
```shell
|
2020-08-11 11:24:21 +08:00
|
|
|
nix-shell --command "cargo xbuild --release -p experiments"
|
2019-08-20 13:45:50 +08:00
|
|
|
cd openocd
|
|
|
|
openocd -f zc706.cfg
|
2019-06-29 08:41:36 +08:00
|
|
|
```
|
2019-05-25 08:38:05 +08:00
|
|
|
|
2020-09-29 16:27:44 +08:00
|
|
|
### Running on the Cora Z7-10
|
2019-05-25 08:38:05 +08:00
|
|
|
|
|
|
|
```shell
|
2020-11-14 00:56:47 +08:00
|
|
|
nix-shell --command "cd experiments && cargo xbuild --release --no-default-features --features=target_coraz7"
|
2019-08-20 13:45:50 +08:00
|
|
|
cd openocd
|
|
|
|
openocd -f cora-z7-10.cfg
|
2019-05-25 08:38:05 +08:00
|
|
|
```
|
2020-01-15 05:07:19 +08:00
|
|
|
|
2020-09-29 16:27:44 +08:00
|
|
|
### Loading a bitstream into volatile memory
|
2020-01-16 02:14:16 +08:00
|
|
|
|
|
|
|
```shell
|
2020-08-11 11:24:21 +08:00
|
|
|
openocd -f zc706.cfg -c "pld load 0 blinker_migen.bit; exit"
|
2020-01-16 02:14:16 +08:00
|
|
|
```
|