diff --git a/README.md b/README.md index bbbd7c6..a23a61d 100644 --- a/README.md +++ b/README.md @@ -8,48 +8,47 @@ family of SoCs. This project contains the following crates: -## [Firmware Workspace](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs/src/branch/main/firmware) +## [Firmware Workspace](./firmware) This workspace contains libraries and application which can only be run on the target system. -- The [`zynq7000-rt`](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs/src/branch/main/firmware/zynq7000-rt) +- The [`zynq7000-rt`](./firmware/zynq7000-rt) run-time crate containing basic low-level startup code necessary to boot a Rust app on the Zynq7000. -- The [`zynq7000`](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs/src/branch/main/firmware/zynq7000) PAC - crate containing basic low-level register definitions. -- The [`zynq7000-mmu`](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs/src/branch/main/firmware/zynq7000-hal) +- The [`zynq7000`](./firmware/zynq7000) PAC crate containing basic low-level register access API. +- The [`zynq7000-mmu`](./firmware/zynq7000-mmu) crate containing common MMU abstractions used by both the HAL and the run-time crate. -- The [`zynq7000-hal`](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs/src/branch/main/firmware/zynq7000-hal) - HAL crate containing higher-level abstractions on top of the PAC register crate. -- The [`zynq7000-embassy`](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs/src/branch/main/firmware/zynq7000-embassy) - crate containing an embassy-rs time driver using the global timer counter peripheral. +- The [`zynq7000-hal`](./firmware/zynq7000-hal) HAL crate containing higher-level abstractions on + top of the PAC register crate. +- The [`zynq7000-embassy`](./firmware/zynq7000-embassy) crate containing an embassy-rs time driver + using the global timer counter peripheral. This project was developed using a Zedboard, so there are several crates available targeted towards this board: -- The [`zedboard-bsp`](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs/src/branch/main/firmware/zedboard-bsp) +- The [`zedboard-bsp`](./firmware/zedboard-bsp) crate containing board specific components for the Zedboard. -- The [`zedboard-fsbl`](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs/src/branch/main/firmware/zedboard-fsbl) +- The [`zedboard-fsbl`](./firmware/zedboard-fsbl) contains a simple first-stage bootloader application for the Zedboard. -- The [`zedboard-qspi-flasher`](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs/src/branch/main/firmware/zedboard-qspi-flasher) +- The [`zedboard-qspi-flasher`](./firmware/zedboard-qspi-flasher) contains an application which is able to flash a boot binary from DDR to the QSPI. It also contains the following helper crates: -- The [`examples`](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs/src/branch/main/firmware/examples) +- The [`examples`](./firmware/examples) folder contains various example applications crates using the HAL and the PAC. This folder also contains dedicated example applications using the [`embassy`](https://github.com/embassy-rs/embassy) native Rust RTOS. ## Other libraries and tools -- The [`zedboard-fpga-design`](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs/src/branch/main/zedboard-fpga-design) +- The [`zedboard-fpga-design`](./zedboard-fpga-design) folder contains a sample FPGA design and block design which was used in some of the provided software examples. The project was created with Vivado version 2024.1. The folder contains a README with all the steps required to load this project from a TCL script. -- The [`zynq7000-boot-image`](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs/src/branch/main/host/zynq7000-boot-image) +- The [`zynq7000-boot-image`](./host/zynq7000-boot-image) library contains generic helpers to interface with the AMD [boot binary](https://docs.amd.com/r/en-US/ug1283-bootgen-user-guide). -- The [`tools/zynq7000-ps7init-extract`](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs/src/branch/main/host/zynq7000-ps7init-extract) +- The [`zynq7000-ps7init-extract`](./host/zynq7000-ps7init-extract) tool allows extracting configuration from the AMD generated `ps7init.tcl` file which contains static configuration parameters for DDR initialization. @@ -157,7 +156,7 @@ Zedboard are configured for JTAG boot. You can use the `-tui` argument to also have a terminal UI. This repository provides a `scripts/runner.sh` which performs all the steps specified above. - The `.cargo/def-config.toml` script contains the runner and some template environmental + The `.cargo/config.toml.template` script contains the runner and some template environmental variables that need to be set for this to work. The command above also loaded the app, but this task can be performed by the `zynq7000-init.py` wrapper as well. diff --git a/firmware/zynq7000-hal/README.md b/firmware/zynq7000-hal/README.md index 39922b1..4f228bb 100644 --- a/firmware/zynq7000-hal/README.md +++ b/firmware/zynq7000-hal/README.md @@ -5,12 +5,12 @@ # HAL for the AMD Zynq 7000 SoC family This repository contains the **H**ardware **A**bstraction **L**ayer (HAL), which is an additional -hardware abstraction on top of the [peripheral access API](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs/src/branch/main/zynq/zynq7000). +hardware abstraction on top of the [peripheral access API](../zynq7000). It is the result of reading the datasheet for the device and encoding a type-safe layer over the raw PAC. This crate also implements traits specified by the [embedded-hal](https://github.com/rust-embedded/embedded-hal) project, making it compatible with various drivers in the embedded rust ecosystem. -The [top-level README](https://egit.irs.uni-stuttgart.de/rust/zynq7000-rs) and the documentation +The [top-level README](../../README.md) and the documentation contain more information on how to use this crate.