Skip to content

Commit

Permalink
Allow building without usb/debug probes
Browse files Browse the repository at this point in the history
Humility was originally designed to be used with a variety of
debug probes. It's since grown the ability to take dumps over the
network. There are situations/environments where it's useful to
run in network only mode. Allow building without debug probes
with `cargo build --no-default-features`.

To make this work with cargo features, the probes are pulled into
a separate crate and the humility binary is moved to `humilty-bin`
  • Loading branch information
labbott committed Jan 15, 2025
1 parent db8ce31 commit f05ff55
Show file tree
Hide file tree
Showing 29 changed files with 1,960 additions and 1,803 deletions.
50 changes: 34 additions & 16 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

125 changes: 6 additions & 119 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,32 +1,11 @@
[package]
name = "humility"

#
# If you are about to update the Humility version (and well you should!) note
# that there are a few tests that implicitly depend on it. Fortunately,
# trycmd makes it easy to update all of these at once; after changing the
# version, utter:
#
# TRYCMD_TEST="tests/cmd/*trycmd" TRYCMD=overwrite cargo test
#
# That will fail, but the files that result in the test failure should be
# overwritten with the new result -- and `git diff` should show something
# reasonable. A subsequent test run should succeed:
#
# TRYCMD_TEST="tests/cmd/*trycmd" cargo test
# Looking to bump the humility version? Check `humility-bin`
#
# Be sure to check in and push all of the files that change. Happy versioning!
#
version = "0.11.14"
authors = ["Bryan Cantrill <[email protected]>"]
edition = "2018"
license = "MPL-2.0"
rust-version = "1.68"

[workspace]
members = [
"humility-arch-arm",
"humility-arch-cortex",
"humility-bin",
"humility-cmd",
"humility-cli",
"humility-core",
Expand All @@ -40,6 +19,7 @@ members = [
"humility-net-core",
"humility-pmbus",
"humility-stack",
"humility-probes-core",
"cmd/apptable",
"cmd/auxflash",
"cmd/bankerase",
Expand Down Expand Up @@ -100,6 +80,7 @@ members = [
"cmd/writeword",
"xtask",
]
resolver = "2"

[workspace.dependencies]
# `git`-based deps
Expand Down Expand Up @@ -133,7 +114,7 @@ capstone = {git = "https://github.com/oxidecomputer/capstone-rs.git"}
humility = { path = "./humility-core", package = "humility-core" }
humility-arch-arm = { path = "./humility-arch-arm" }
humility-cortex = { path = "./humility-arch-cortex" }
humility-cmd = { path = "./humility-cmd" }
humility-cmd = { path = "./humility-cmd", default-features = false }
humility-cli = { path = "./humility-cli" }
humility-dump-agent = { path = "./humility-dump-agent" }
humility-doppel = { path = "./humility-doppel" }
Expand All @@ -145,6 +126,7 @@ humility_load_derive = { path = "./load_derive" }
humility-log = { path = "./humility-log" }
humility-net-core = { path = "./humility-net-core" }
humility-pmbus = { path = "./humility-pmbus" }
humility-probes-core = { path = "./humility-probes-core" }
humility-stack = { path = "./humility-stack" }
cmd-apptable = { path = "./cmd/apptable", package = "humility-cmd-apptable" }
cmd-auxflash = { path = "./cmd/auxflash", package = "humility-cmd-auxflash" }
Expand Down Expand Up @@ -283,101 +265,6 @@ inherits = "release"
debug = false
debug-assertions = true

[build-dependencies]
cargo_metadata = { workspace = true }
anyhow = { workspace = true }

[dependencies]
pmbus = { workspace = true }
hif = { workspace = true }
spd = { workspace = true }
humility = { workspace = true }
humility-cortex = { workspace = true }
humility-cmd = { workspace = true }
humility-cli = { workspace = true }
cmd-apptable = { workspace = true }
cmd-auxflash = { workspace = true }
cmd-bankerase = { workspace = true }
cmd-console-proxy = { workspace = true }
cmd-counters = { workspace = true }
cmd-dashboard = { workspace = true }
cmd-diagnose = { workspace = true }
cmd-debugmailbox = { workspace = true }
cmd-doc = { workspace = true }
cmd-dump = { workspace = true }
cmd-tofino-eeprom = { workspace = true }
cmd-etm = { workspace = true }
cmd-exec = { workspace = true }
cmd-extract = { workspace = true }
cmd-flash = { workspace = true }
cmd-gdb = { workspace = true }
cmd-gimlet = { workspace = true }
cmd-gpio = { workspace = true }
cmd-hash = { workspace = true }
cmd-host = { workspace = true }
cmd-hiffy = { workspace = true }
cmd-hydrate = { workspace = true }
cmd-i2c = { workspace = true }
cmd-ibc = { workspace = true }
cmd-itm = { workspace = true }
cmd-jefe = { workspace = true }
cmd-lpc55gpio = { workspace = true }
cmd-lsusb = { workspace = true }
cmd-manifest = { workspace = true }
cmd-map = { workspace = true }
cmd-monorail = { workspace = true }
cmd-net = { workspace = true }
cmd-openocd = { workspace = true }
cmd-pmbus = { workspace = true }
cmd-power = { workspace = true }
cmd-powershelf = { workspace = true }
cmd-probe = { workspace = true }
cmd-qspi = { workspace = true }
cmd-readmem = { workspace = true }
cmd-readvar = { workspace = true }
cmd-rebootleby.workspace = true
cmd-registers = { workspace = true }
cmd-reset = { workspace = true }
cmd-rencm = { workspace = true }
cmd-rendmp = { workspace = true }
cmd-ringbuf = { workspace = true }
cmd-rpc = { workspace = true }
cmd-sbrmi = { workspace = true }
cmd-sensors = { workspace = true }
cmd-spctrl = { workspace = true }
cmd-spd = { workspace = true }
cmd-spi = { workspace = true }
cmd-stackmargin = { workspace = true }
cmd-stmsecure = { workspace = true }
cmd-tasks = { workspace = true }
cmd-test = { workspace = true }
cmd-validate = { workspace = true }
cmd-vpd = { workspace = true }
cmd-writeword = { workspace = true }

fallible-iterator = { workspace = true }
log = { workspace = true }
env_logger = { workspace = true }
bitfield = { workspace = true }
clap = { workspace = true }
csv = { workspace = true }
serde = { workspace = true }
parse_int = { workspace = true }
multimap = { workspace = true }
num-traits = { workspace = true }
num-derive = { workspace = true }
jep106 = { workspace = true }
toml = { workspace = true }
anyhow = { workspace = true }
scroll = { workspace = true }
indicatif = { workspace = true }
colored = { workspace = true }
indexmap = { workspace = true }
reedline = { workspace = true }

[patch.crates-io]
libusb1-sys = { git = "https://github.com/oxidecomputer/rusb", branch = "probe-rs-0.12-libusb-v1.0.26" }
hidapi = { git = "https://github.com/oxidecomputer/hidapi-rs", branch = "oxide-stable" }

[dev-dependencies]
trycmd = { workspace = true }
1 change: 1 addition & 0 deletions cmd/bankerase/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ humility = { workspace = true }
humility-cortex = { workspace = true }
humility-cmd = { workspace = true }
humility-cli = { workspace = true }
humility-probes-core = { workspace = true }
clap = { workspace = true }
anyhow = { workspace = true }
parse_int = { workspace = true }
Expand Down
3 changes: 2 additions & 1 deletion cmd/bankerase/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,8 @@ fn bankerasecmd(context: &mut ExecutionContext) -> Result<()> {
};

humility::msg!("attaching with chip set to {chip:x?}");
let mut c = humility::core::attach_for_flashing(probe, hubris, &chip)?;
let mut c =
humility_probes_core::attach_for_flashing(probe, hubris, &chip)?;
let core = c.as_mut();

let ihex = tempfile::NamedTempFile::new()?;
Expand Down
1 change: 0 additions & 1 deletion cmd/dump/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ log.workspace = true
lzss.workspace = true
num-traits.workspace = true
parse_int.workspace = true
probe-rs.workspace = true
zerocopy.workspace = true
zip.workspace = true

Expand Down
1 change: 1 addition & 0 deletions cmd/flash/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ humility = { workspace = true }
humility-cortex = { workspace = true }
humility-cmd = { workspace = true }
humility-cli = { workspace = true }
humility-probes-core = { workspace = true }
cmd-auxflash = { workspace = true }
clap = { workspace = true }
anyhow = { workspace = true }
Expand Down
5 changes: 3 additions & 2 deletions cmd/flash/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ fn force_openocd(
};

let serial = {
let mut c = humility::core::attach(probe, hubris)?;
let mut c = humility_probes_core::attach(probe, hubris)?;
let core = c.as_mut();

validate(hubris, core, subargs)?;
Expand Down Expand Up @@ -367,7 +367,8 @@ fn flashcmd(context: &mut ExecutionContext) -> Result<()> {
};

humility::msg!("attaching with chip set to {chip:x?}");
let mut c = humility::core::attach_for_flashing(probe, hubris, &chip)?;
let mut c =
humility_probes_core::attach_for_flashing(probe, hubris, &chip)?;
let core = c.as_mut();

validate(hubris, core, &subargs)?;
Expand Down
1 change: 0 additions & 1 deletion cmd/rebootleby/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,4 @@ tempfile = { workspace = true }
path-slash = { workspace = true }
ihex = { workspace = true }
zip.workspace = true
probe-rs.workspace = true
log.workspace = true
1 change: 1 addition & 0 deletions cmd/reset/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ description = "Reset the chip using external pins"
humility = { workspace = true }
humility-cmd = { workspace = true }
humility-cli = { workspace = true }
humility-probes-core = { workspace = true }
clap = { workspace = true }
anyhow = { workspace = true }
4 changes: 2 additions & 2 deletions cmd/reset/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ fn reset(context: &mut ExecutionContext) -> Result<()> {
"Need a chip to do a soft reset or halt after reset"
)
})?;
humility::core::attach_to_chip(probe, hubris, Some(&chip))?
humility_probes_core::attach_to_chip(probe, hubris, Some(&chip))?
} else {
humility::core::attach_to_probe(probe)?
humility_probes_core::attach_to_probe(probe)?
};

let r = if subargs.halt {
Expand Down
Loading

0 comments on commit f05ff55

Please sign in to comment.