A collection of utilities for working with Wishbone
To build the utilities, type
make. Precompiled versions of
wishbone-tool can be found in the releases/ section.
wishbone-tool: All-in-one Wishbone binary, available for a variety of platforms.
litex-devmem2: An implementation of the classic
devmem2command for litex. Supports direct connections via Ethernet, or going through the
litex_serverbinary to support PCIe and UART.
etherbone: A library that can be used for communicating with a remote device.
wishbone-tool is useful for interacting with the internal Wishbone bridge on a device. Some of the things you can use
- Peeking and poking memory, such as with
- Testing memory and bridge consistency
- Exposing a Wishbone bridge to Ethernet
- Attaching a GDB server to a softcore
Currently-supported Wishbone bridges include:
- usb - For use with Valentyusb such as on Fomu
- serial - Generic UART, nominally running at 115200
Wishbone Tool Usage
wishbone-tool will communicate via USB, attempting to open a device with PID
0x5bf0. It will wait until it finds such a device. To use a serial device instead, specify
wishbone-tool --serial /dev/ttyUSB0.
To read from an area of memory (such as 0x10000000), run:
$ wishbone-tool 0x10000000 INFO [wishbone_tool::usb_bridge] waiting for target device INFO [wishbone_tool::usb_bridge] opened USB device device 019 on bus 001 Value at 00000000: 6f80106f $
To write a value to memory, add an additional parameter:
$ wishbone-tool 0x10000000 0x12345678 INFO [wishbone_tool::usb_bridge] opened USB device device 019 on bus 001 $ wishbone-tool 0x10000000 INFO [wishbone_tool::usb_bridge] opened USB device device 019 on bus 001 Value at 00000000: 12345678 $
You can connect to a serial port by specifying the
$ wishbone-tool --serial COM4: 0