On 2/6/26 10:43 AM, Timur Tabi wrote:
On Thu, 2026-02-05 at 20:21 -0800, John Hubbard wrote:
+ // Reset and boot GSP before SEC2
+ gsp_falcon.reset(bar)?;
+ let libos_handle = libos.dma_handle();
+ let (mbox0, mbox1) = gsp_falcon.boot(
+ bar,
+ Some(libos_handle as u32),
+ Some((libos_handle >> 32) as u32),
+ )?;
+ dev_dbg!(dev, "GSP MBOX0: {:#x}, MBOX1: {:#x}\n", mbox0, mbox1);
+ dev_dbg!(
+ dev,
+ "Using SEC2 to load and run the booter_load firmware...\n"
+ );
+
Looks like you accidentally deleted the "if mbox0 != 0" test.
OK, I've added it back in for the next version:
diff --git a/drivers/gpu/nova-core/gsp/boot.rs
b/drivers/gpu/nova-core/gsp/boot.rs
index 02eec2961b5f..d19dc4592579 100644
--- a/drivers/gpu/nova-core/gsp/boot.rs
+++ b/drivers/gpu/nova-core/gsp/boot.rs
@@ -190,6 +190,12 @@ fn boot_via_sec2(
Some((libos_handle >> 32) as u32),
)?;
dev_dbg!(dev, "GSP MBOX0: {:#x}, MBOX1: {:#x}\n", mbox0, mbox1);
+
+ if mbox0 != 0 {
+ dev_err!(dev, "GSP boot failed with error {:#x}\n", mbox0);
+ return Err(ENODEV);
+ }
+
dev_dbg!(
dev,
"Using SEC2 to load and run the booter_load firmware...\n"
thanks,
--
John Hubbard