5 releases

0.2.0 Oct 19, 2024
0.1.3 Nov 19, 2023
0.1.2 Sep 21, 2023
0.1.1 Feb 21, 2023
0.1.0 Feb 20, 2023

#265 in Hardware support

Download history 197/week @ 2024-09-18 119/week @ 2024-09-25 251/week @ 2024-10-02 470/week @ 2024-10-09 183/week @ 2024-10-16 90/week @ 2024-10-23 140/week @ 2024-10-30 53/week @ 2024-11-06 3/week @ 2024-11-13 109/week @ 2024-11-20 83/week @ 2024-11-27 310/week @ 2024-12-04 315/week @ 2024-12-11 65/week @ 2024-12-18 12/week @ 2024-12-25 44/week @ 2025-01-01

479 downloads per month
Used in boardswarm

MIT/Apache

66KB
1.5K SLoC

Rockchip usb protocol host implementation

Rockchip bootroms and early loaders implement an USB protocol to help loader early firmware, flashing persistant storage etc. This crate contains a sans-io implementation of that protocol as well as an optional implementations of IO using libusb or nusb.

Printing chip info using libusb backend:

# fn main() -> anyhow::Result<()> {
let devices = rockusb::libusb::Devices::new()?;
let mut transport = devices.iter().next()
    .ok_or_else(|| anyhow::anyhow!("No Device found"))??;
println!("Chip Info: {:0x?}", transport.chip_info()?);
Ok(())
# }

Printing chip info using nusb backend:

# #[tokio::main]
# async fn main() -> anyhow::Result<()> {
let mut devices = rockusb::nusb::devices()?;
let info = devices.next()
    .ok_or_else(|| anyhow::anyhow!("No Device found"))?;
let mut transport = rockusb::nusb::Transport::from_usb_device_info(info)?;
println!("Chip Info: {:0x?}", transport.chip_info().await?);
Ok(())
# }

Dependencies

~0.5–9.5MB
~113K SLoC