[][src]Crate wishbone_bridge

Wishbone Bridges

Wishbone is an internal bus that runs on-chip. It provides memory-based interconnect between various hardware modules. Wishbone buses frequently contain memories such as RAM and ROM, as well as memory-mapped peripherals.

By accessing these memories remotely, a target device may be examined or tested by a host.

Wishbone may be bridged from a target to a host using a variety of protocols. This library supports different protocols depending on what features are enabled. By default, all supported protocols are enabled.

Creating a Wishbone Bridge object involves first creating a configuration struct that describes the connection mechanism, and then calling .create() on that struct to create the Bridge. For example, to create a USB Bridge using the USB PID 0x1234, peek memory at address 0, and poke the value 0x12345678 into address 0x20000000, you would use a UsbBridge like this:

use wishbone_bridge::UsbBridge;
let bridge = UsbBridge::new().pid(0x1234).create().unwrap();
println!("Memory at address 0: {:08x}", bridge.peek(0).unwrap());
bridge.poke(0x2000_0000, 0x1234_5678).unwrap();

Creating other bridges is done in a similar manner -- see their individual pages for more information.



Bridges represent the actual connection to the device. You must create a Bridge by constructing a configuration from the relevant configuration type, and then calling create().


A builder to create a connection to a target via Ethernet, either using TCP or UDP. The EthernetBridge struct also describes connections to proxy servers that relay Wishbone packets over Ethernet, such as remote USB-to-Ethernet bridges.


Describes a connection to a target via PCI Express.


Describes a connection to a SPI bus. Note that not all platforms support SPI connections.


Describes a connection to a UART or serial port


Connect to a target device via USB.



Errors that are generated while creating or using the Wishbone Bridge.


Indicates which Ethernet protocol to use for Wishbone when connecting via a network.