Robert Mustacchi
👤 PersonAppearances Over Time
Podcast Appearances
So it's like, when does the logical SOC service begin? When does the memory map service start? What is it blocked on? So a lot of it is basically trying to come up with this effectively callback-driven control flow and trying to understand what is that just by purely reading, which is not straightforward and definitely not always correct.
So it's like, when does the logical SOC service begin? When does the memory map service start? What is it blocked on? So a lot of it is basically trying to come up with this effectively callback-driven control flow and trying to understand what is that just by purely reading, which is not straightforward and definitely not always correct.
Yeah, that was in our software. We're trying to send a message to the hidden core, which is responsible for PCIe initialization. We're also trying to send it a data structure that has all the mapping of all of our lanes and all this fun stuff. And then you send a message and then wait a while. And surprise, it came back to the bootloader prompt. which is never a good sign. Never a good sign.
Yeah, that was in our software. We're trying to send a message to the hidden core, which is responsible for PCIe initialization. We're also trying to send it a data structure that has all the mapping of all of our lanes and all this fun stuff. And then you send a message and then wait a while. And surprise, it came back to the bootloader prompt. which is never a good sign. Never a good sign.
The kernel's up, so in theory, if I take a page fault or a double fault, you'd trap into KMDB and you could debug. And that's when I started asking Brian, like,
The kernel's up, so in theory, if I take a page fault or a double fault, you'd trap into KMDB and you could debug. And that's when I started asking Brian, like,
missing right to one of the registers in the effectively the mbio which is northbridge io which has parts of what the memory map bar so we were basically trying to do dma to an address and um it didn't have a it was missing information that told it whether that was dram or memory mapped uh, IO.
missing right to one of the registers in the effectively the mbio which is northbridge io which has parts of what the memory map bar so we were basically trying to do dma to an address and um it didn't have a it was missing information that told it whether that was dram or memory mapped uh, IO.
And so it probably hit some internal error and, you know, uh, especially since then we didn't have good observer, but we were still working on a reference platform. So we didn't have our service processor, our other stuff there. So we couldn't see if there were, you know, some of the low level asserts were being fired that would trigger something on a pin. Uh, right. We had nothing.
And so it probably hit some internal error and, you know, uh, especially since then we didn't have good observer, but we were still working on a reference platform. So we didn't have our service processor, our other stuff there. So we couldn't see if there were, you know, some of the low level asserts were being fired that would trigger something on a pin. Uh, right. We had nothing.
Yeah, well, and I think this also gets to some of the tooling stuff. It's like we had actually built up a whole bunch of random demods in KMDB because there was no user land. So it's all in the kernel debugger to basically be able to read and write some of these different register spaces. So there's the system management network is one of them. And then the data fabric is another one.
Yeah, well, and I think this also gets to some of the tooling stuff. It's like we had actually built up a whole bunch of random demods in KMDB because there was no user land. So it's all in the kernel debugger to basically be able to read and write some of these different register spaces. So there's the system management network is one of them. And then the data fabric is another one.
And having that tooling be able to do that, just let us kind of do some inspection, We use this in other problems because that is something that we could use without the oxide architecture. So we actually sometimes would compare and contrast that to what we saw on an i86 PC, on a standard PC.
And having that tooling be able to do that, just let us kind of do some inspection, We use this in other problems because that is something that we could use without the oxide architecture. So we actually sometimes would compare and contrast that to what we saw on an i86 PC, on a standard PC.
But for this one, it was really code inspection, double and triple checking, rereading, getting it wrong a lot. And I don't know. There was a bit of a... Yeah, a lot of the time it's kind of a blur, I'll be honest.
But for this one, it was really code inspection, double and triple checking, rereading, getting it wrong a lot. And I don't know. There was a bit of a... Yeah, a lot of the time it's kind of a blur, I'll be honest.
The actual boot and like load time isn't that bad. It's really more of the mental... the mental effort there, I'd say. Just knowing what to do next.
The actual boot and like load time isn't that bad. It's really more of the mental... the mental effort there, I'd say. Just knowing what to do next.
No, don't worry. I'm plenty terrified. Okay, that actually makes you feel better. You know, I think part of it is also that I actually am never doing this alone, no matter where I've been at. Even if other folks don't necessarily have all the background, you know, that time, you know, Keith and I were working together a lot, but other folks would sit there, help listen to things.
No, don't worry. I'm plenty terrified. Okay, that actually makes you feel better. You know, I think part of it is also that I actually am never doing this alone, no matter where I've been at. Even if other folks don't necessarily have all the background, you know, that time, you know, Keith and I were working together a lot, but other folks would sit there, help listen to things.