File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -87,9 +87,10 @@ hif = { git = "https://github.com/oxidecomputer/hif" }
8787humpty = { git = " https://github.com/oxidecomputer/humpty" , version = " 0.1.3" }
8888idol = {git = " https://github.com/oxidecomputer/idolatry.git" }
8989idt8a3xxxx = { git = " https://github.com/oxidecomputer/idt8a3xxxx" }
90+ measurement-token = { git = " https://github.com/oxidecomputer/lpc55_support" , default-features = false }
9091pmbus = { git = " https://github.com/oxidecomputer/pmbus" }
91- spd = { git = " https://github.com/oxidecomputer/spd" }
9292serialport = { git = " https://github.com/jgallagher/serialport-rs" , branch = " illumos-support" }
93+ spd = { git = " https://github.com/oxidecomputer/spd" }
9394tlvc = { git = " https://github.com/oxidecomputer/tlvc" }
9495tlvc-text = {git = " https://github.com/oxidecomputer/tlvc" }
9596vsc7448-info = { git = " https://github.com/oxidecomputer/vsc7448.git" }
Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ humility-probes-core = { workspace = true }
1313cmd-auxflash = { workspace = true }
1414clap = { workspace = true }
1515anyhow = { workspace = true }
16+ measurement-token = { workspace = true }
1617parse_int = { workspace = true }
1718num-traits = { workspace = true }
1819tempfile = { workspace = true }
Original file line number Diff line number Diff line change @@ -403,7 +403,23 @@ fn flashcmd(context: &mut ExecutionContext) -> Result<()> {
403403 std:: thread:: sleep ( std:: time:: Duration :: from_millis ( delay) ) ;
404404 }
405405
406- core. reset ( ) ?;
406+ // If this image uses handoff to send a measurement token between the RoT
407+ // and SP, this won't work with a debugger physically attached. To prevent
408+ // the SP from resetting itself, we write a different token which skips this
409+ // reboot loop. The memory address and token values are pulled from the
410+ // `measurement-token` crate in `lpc55_support`, which is also used in the
411+ // SP firmware.
412+ if hubris. manifest . features . iter ( ) . any ( |s| s == "measurement-handoff" ) {
413+ core. reset_and_halt ( std:: time:: Duration :: from_millis ( 25 ) ) ?;
414+ humility:: msg!( "skipping measurement token handoff" ) ;
415+ core. write_word_32 (
416+ measurement_token:: SP_ADDR as u32 ,
417+ measurement_token:: SKIP ,
418+ ) ?;
419+ core. run ( ) ?;
420+ } else {
421+ core. reset ( ) ?;
422+ }
407423
408424 // At this point, we can attempt to program the auxiliary flash. This has
409425 // to happen *after* the image is flashed and the core is reset, because it
Original file line number Diff line number Diff line change 1717
1818[package ]
1919name = " humility-bin"
20- version = " 0.12.6 "
20+ version = " 0.12.7 "
2121edition = " 2021"
2222license = " MPL-2.0"
2323rust-version = " 1.68"
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ For more information try --help
1313
1414```
1515$ humility --chip this-can-be-anything -V
16- humility 0.12.6
16+ humility 0.12.7
1717
1818```
1919
@@ -28,7 +28,7 @@ For more information try --help
2828
2929```
3030$ humility -c apx432 -V
31- humility 0.12.6
31+ humility 0.12.7
3232
3333```
3434
Original file line number Diff line number Diff line change @@ -2,14 +2,14 @@ Long version flag:
22
33```
44$ humility --version
5- humility 0.12.6
5+ humility 0.12.7
66
77```
88
99Short version flag:
1010
1111```
1212$ humility -V
13- humility 0.12.6
13+ humility 0.12.7
1414
1515```
Original file line number Diff line number Diff line change @@ -40,7 +40,7 @@ const OXIDE_NT_HUBRIS_ARCHIVE: u32 = OXIDE_NT_BASE + 1;
4040const OXIDE_NT_HUBRIS_REGISTERS : u32 = OXIDE_NT_BASE + 2 ;
4141const OXIDE_NT_HUBRIS_TASK : u32 = OXIDE_NT_BASE + 3 ;
4242
43- const MAX_HUBRIS_VERSION : u32 = 9 ;
43+ const MAX_HUBRIS_VERSION : u32 = 10 ;
4444
4545#[ derive( Default , Debug , Serialize ) ]
4646pub struct HubrisManifest {
You can’t perform that action at this time.
0 commit comments