Hi John, Could you please confirm that if ADS struct is filled incorrectly, then GuC fails to load and change GUC_STATUS? I checked LOG buffer and memory is empty. I believe, that I have not set ADS correctly and GuC gets some kind of fatal failure. Thanks, Maksym piątek, 9 lutego 2024 8:42 AM, natur.produkt@xxxxx <natur.produkt@xxxxx> napisał(a): > > > Hello, > > Please see my comments below. > > piątek, 9 lutego 2024 2:45 AM, John Harrison john.c.harrison@xxxxxxxxx napisał(a): > > > Hello, > > > > What platform is this on? And which GuC firmware version are you using? > > > It's TGL. I'm using tgl_guc_70.1.1.bin firmware blob. > > > One thing you made need to do is force maximum GT frequency during GuC > > load. That is something the i915 driver does. If the system decides the > > GPU is idle and drops the frequency to minimum then it can take multiple > > seconds for the GuC initialisation to complete. > > > Thanks for the hint. I'm not doing that at all in my code. How am I supposed to do this? Is there a specific register for that? > > > Did the status change at all during that second of waiting? Or was it > > still reading LAPIC_DONE? > > > It's always LAPIC_DONE. > > > For ADS documentation, I'm afraid that the best we currently have > > publicly available is the i915 driver code. If you are not intending to > > use GuC submission then most of the ADS can be ignored. > > > Ok, that great. Which part of ADS is must-have then? > > > If you can share the GuC log, that might provide some clues as to what > > is happening. For just logging the boot process, you shouldn't need to > > allocate a large log. The default size of i915 for release builds is > > 64KB. That should be plenty. > > > I'll collect GuC log as soon as possible. Is it something that can be understood without a knowledge of GuC internals? Or is it simply hex dumps? > > > John. > > > > On 2/6/2024 23:59, natur.produkt@xxxxx wrote: > > > > > Hi, > > > > > > I'm currently implementing GuC/HuC firmware support in one Safety Critical OS. > > > I'm following i915 code and I implemented all paths (I don't want GuC submission or SLPC features). I need GuC to authenticate HuC firmware blob. > > > > > > I mirrored GuC implementation in my code. > > > > > > After GuC DMA transfer succeeds, I'm reading GUC_STATUS register. > > > HW returns INTEL_BOOTROM_STATUS_JUMP_PASSED as bootrom status and INTEL_GUC_LOAD_STATUS_LAPIC_DONE as GuC load status. > > > > > > Unfortunately, after one second of waiting, the status didn't get changed to INTEL_GUC_LOAD_STATUS_READY at all. > > > > > > What is a potential issue here? > > > Could you please help me? > > > > > > In addition to this, could you please point out some documentation about GuC's ADS struct? > > > > > > Thanks, > > > Maksym