diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index db47e0e..2dd3eb6 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -23,17 +23,14 @@ jobs: - name: Install additional targets run: | rustup target add x86_64-pc-windows-gnu - rustup target add i686-pc-windows-gnu - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y p7zip-full build-essential pkg-config \ - libusb-dev libusb-1.0 dfu-util fwupd gcc-mingw-w64-x86-64 \ - gcc-mingw-w64-i686 gcc-arm-none-eabi + libusb-dev libusb-1.0 gcc-mingw-w64-x86-64 - name: Download libusb DLLs for Windows - working-directory: software run: | wget https://github.com/libusb/libusb/releases/download/v1.0.23/libusb-1.0.23.7z mkdir libusb @@ -42,32 +39,20 @@ jobs: 7z x libusb-1.0.23.7z - name: Build for Linux x86_64 - working-directory: software run: | cargo clean cargo build --release cp target/release/ecpdap ecpdap_linux_x86_64 - name: Build for Windows x86_64 - working-directory: software env: PKG_CONFIG_ALLOW_CROSS: 1 - RUSTFLAGS: -L ${{ github.workspace }}/software/libusb/MinGW64/dll/ + RUSTFLAGS: -L ${{ github.workspace }}/libusb/MinGW64/dll/ run: | cargo clean cargo build --release --target x86_64-pc-windows-gnu cp target/x86_64-pc-windows-gnu/release/ecpdap.exe ecpdap_windows_x86_64.exe - - name: Build for Windows i686 - working-directory: software - env: - PKG_CONFIG_ALLOW_CROSS: 1 - RUSTFLAGS: -L ${{ github.workspace }}/software/libusb/MinGW32/dll/ -C panic=abort - run: | - cargo clean - cargo build --release --target i686-pc-windows-gnu - cp target/i686-pc-windows-gnu/release/ecpdap.exe ecpdap_windows_i686.exe - - name: Create release id: create_release uses: actions/create-release@v1 @@ -82,7 +67,6 @@ jobs: The following pre-built files are available: * `ecpdap_linux_x86_64`: ecpdap control software for Linux (64-bit) * `ecpdap_windows_x86_64.exe`: ecpdap control software for Windows (64-bit) - * `ecpdap_windows_i686.exe`: ecpdap control software for Windows (32-bit) ecpdap requires libusb be installed; on Linux it should suffice to install libusb-1.0, on Windows download the pre-built DLLs from [libusb.info](https://libusb.info/) and either install them system-wide or put them in the same directory as your executable. @@ -92,7 +76,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: software/ecpdap_linux_x86_64 + asset_path: ecpdap_linux_x86_64 asset_name: ecpdap_linux_x86_64 asset_content_type: application/octet-stream @@ -102,16 +86,6 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: software/ecpdap_windows_x86_64.exe + asset_path: ecpdap_windows_x86_64.exe asset_name: ecpdap_windows_x86_64.exe asset_content_type: application/octet-stream - - - name: Upload ecpdap for Windows i686 - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: software/ecpdap_windows_i686.exe - asset_name: ecpdap_windows_i686.exe - asset_content_type: application/octet-stream diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..9bbbced --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,15 @@ +# Changelog + +## [Unreleased] + +## [v0.1.1] - 2021-01-01 + +* No functional changes. + +## [v0.1.0] - 2021-01-01 + +* Initial release. + +[Unreleased]: https://github.com/rust-embedded/cortex-m/compare/v0.1.1...HEAD +[v0.1.1]: https://github.com/rust-embedded/cortex-m/compare/v0.1.0...v0.1.1 +[v0.1.0]: https://https://github.com/adamgreig/ecpdap/tree/v0.1.0 diff --git a/Cargo.toml b/Cargo.toml index 1e0518a..e32d984 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ecpdap" -version = "0.1.0" +version = "0.1.1" authors = ["Adam Greig "] edition = "2018" repository = "https://github.com/adamgreig/ecpdap" diff --git a/README.md b/README.md index ce34df5..f1c9743 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,16 @@ ECPDAP allows you to program ECP5 FPGAs and attached SPI flash using CMSIS-DAP probes in JTAG mode. +## JTAG Scan Chains + +ECP5 FPGAs can be programmed on arbitrary JTAG scan chains; you may need to +specify `--ir-lengths` and possibly specify a higher `--scan-chain-length` +depending on the other devices on your scan chain. + +However, the attached SPI flashes require that the ECP5 is the only device +on the scan chain (in other words, the probe TDI and TDO connect directly +to the ECP5 pins). + ## Pre-built Binaries Pre-built binaries are available for Windows and Linux on the [Releases] page. @@ -19,7 +29,7 @@ have permissions or drivers set up to access your CMSIS-DAP probe. * You must have [libusb] installed. * You'll need to set up drivers or permissions to access the USB device. -Build and install: +Build and install for your user, without checking out the repository: ``` cargo install ecpdap @@ -38,7 +48,9 @@ or you can install it for your user using `cargo install --path .`. Run `ecpdap help` for detailed usage. Commonly used commands: -* `ecpdap list` +* `ecpdap probes` +* `ecpdap scan` * `ecpdap program bitstream.bit` * `ecpdap flash id` +* `ecpdap flash scan` * `ecpdap flash write bitstream.bit`