7
mirror of https://github.com/EEVengers/ThunderScope.git synced 2025-04-03 05:16:33 +00:00

Add LiteX setup guide to docs. Update Litex firmware submodule

This commit is contained in:
Nate Meyer 2024-08-16 10:00:54 -04:00
parent 5f351e5a93
commit f92a21f0bd
3 changed files with 129 additions and 1 deletions

120
Docs/LiteX.md Normal file
View File

@ -0,0 +1,120 @@
# LiteX Build and Setup Guide
## Gateware
The FPGA gateware for the Thunderscope is supported by the [ThunderScope Litex Repo](https://github.com/EEVengers/thunderscope_litex).
### Build
1. Install Vivado, Python3, and LiteX.
2. Ensure Vivado is in your current path
3. Clone the thunderscope_litex repo and follow the instruction in the README.md to build the gateware and generate the software driver.
4. `./thunderscope.py --variant=<variant> --driver --build`
Available Variants:
| Label | Description |
| :-----: | :---------- |
| `a200t` | Trenz A200T Module |
| `a100t` | Trenz A100T Module |
| `a50t` | Custom Module |
### Flash
1. Connect the JTAG debugger to the Thunderscope
2. `./thunderscope.py --variant=<variant> --flash`
## LitePCIe Driver
### Linux
The Linux driver for the LiteX build is generated by the litex gateware project.
```sh
$ cd software/kernel
$ make
$ sudo ./init.sh
```
### Windows
The Windows driver for the LiteX build is available from the [LitePCIe Windows Driver Repo](https://github.com/NateMeyer/litepcie_driver_win)
1. Install the prerequisites as described in the driver project's README, including either the Windows WDK and KMDF or the EWDK command line tools.
2. After building the litex gateware, copy the csr and soc header files from the Linux driver to the Windows driver
```sh
> cp ./thunderscope_litex/software/kernel/csr.h ./litepcie_driver_win/litepciedrv/public_h/csr.h
> cp ./thunderscope_litex/software/kernel/soc.h ./litepcie_driver_win/litepciedrv/public_h/soc.h
```
3. Build the LitePCIe Driver project by opening the .vcxproj file in Visual Studio, Or launching the EWDK build environment.
```cmd
> C:\EWDK\LaunchBuildEnv.cmd
> msbuild litepciedrv.vcxproj /p:Configuration=Release /p:Platform=x64
```
The Driver file is found in the `litepciedrv/x64/Release/litepciedrv` folder.
4. To install the driver, verify your PC is in TESTSIGNING mode. In an administrator command prompt, run the command `Bcdedit.exe -set TESTSIGNING ON` and reboot the system.
When Windows is in TESTSIGNING mode, ensure the Thunderscope is connected to the PC. Open the Device Manager and locate the Thunderscope in the "Multifunction Devices" category. Right-Click the Thunderscope device and select "Update Driver". Tell Windows to manualy install the driver from the litepciedrv build folder noted above.
## TsLitex Library
The libtslitex library provides control over the Thunderscope input channels and Sample DMA. Clone the [libtslitex Repo](https://github.com/NateMeyer/libtslitex) [Current latest is the `ts_calibration` branch]
Libtslitex uses the CMake build environment.
1. Create a build folder
```
> mkdir build && cd build
```
2. Configure CMake
```
> cmake ..
```
3. Build with CMake
```
> cmake --build . --config=Release
```
4. There is a test application built to `build/artifacts/example/Release/` and the libraries are found in the `build/Release` folder
## TS.NET
Management of Data buffers and data triggering is provided by the TS.NET project.
1. Clone the [TS.NET Repo](https://github.com/macaba/TS.NET)
2. Build the TS.NET.Engine project using the included build script.
```cmd
> cd build-scripts
> powershell -ExecutionPolicy Bypass -File "TS.NET.Engine (win-x64).ps1"
```
3. Copy the tslitex library file into the TS.NET.Engine build directory
```cmd
> cp libtslitex/build/Release/tslitex.dll TS.NET/builds/win-x64/TS.NET.Engine/0.1.0/tslitex.dll
```
4. Change the configured HardwareDriver in the thunderscope.yaml file to LiteX
```yaml
HardwareDriver: LiteX
```
You should now be able to run TS.NET.Engine and connect to the Thunderscope.

View File

@ -21,6 +21,8 @@ Catch up with these videos on the project:
## Quick Start Guide
### XDMA
These are instructions for the XDMA gateware, which is currently the most stable gateware and driver.
1. Install the XDMA driver for [Linux](https://github.com/EEVengers/ThunderScope/tree/master/Software/xdma_driver_linux) or [Windows](https://github.com/EEVengers/ThunderScope/tree/master/Software/xdma_driver_win_src_2018_2)
@ -40,6 +42,12 @@ These are instructions for the XDMA gateware, which is currently the most stable
4. Run TS.NET.Engine and ngscopeclient
5. Add ThunderScope in ngscopeclient under Add -> Oscilloscope with "thunderscope" Driver, "Twinlan" Transport and "Localhost:5025:5026" for the Path
### LiteX
Follow the instructions in the LiteX guide to build the gateware and software for running LiteX firmware on the Thunderscope.
[LiteX Build and Setup Guide](Docs/LiteX.md)
## Troubleshooting
If you are getting under ~1000MB/s throughput on Linux, try turning off VT-d (Intel) or IOMMU/AMD-Vi (AMD) in BIOS or using "intel_iommu=off" in GRUB (Intel)