Thanks Andrew and Laszlo for the clarification and guidance. About Laszlo questions
>Is the reboot automatic (from the platform firmware), or application / >user initiated? Yes. We just do some clean up, finish the events and "return EFI_SUCCESS;" >Do you exit the application before the system is powered off? No. At this test we just let the application finishes it's work and power off the system. No "return EFI_SUCCESS;" Thanks and Regards Rafael Em qui, 2 de ago de 2018 às 11:44, Laszlo Ersek <[email protected]> escreveu: > On 08/02/18 14:39, Rafael Machado wrote: > > Hi everyone > > > > After some other tasks I am back to this case :) > > > > After some debug, we detected the moment where things start to go wrong, > > but I am not sure what may cause this. > > > > What we noticed is that the following assert is reached: > > > https://github.com/tianocore/edk2/blob/87acb6e298e718250dd8b741b6888a3a54c7cb5a/MdeModulePkg/Core/Dxe/Gcd/Gcd.c#L2199 > > > > Just to remember, this assert is reached with the following steps: > > 1 - Boot the application (renamed to BOOTX64.efi) from a usb stick > > 2 - Execute the application tasks > > 3 - exit the application (free everything, all events closed and no > memory > > leaks detected as suggested to check by Andrew on the previous e-mail, > then > > return efi_success) > > 4 - the system will reboot and reach the assert > > Is the reboot automatic (from the platform firmware), or application / > user initiated? > > > But it does not happen with the following scenario: > > 1 - Boot the application (renamed to BOOTX64.efi) from a usb stick > > 2 - Execute the application tasks > > 3 - Power off the system > > Do you exit the application before the system is powered off? > > > > > As far as I could understand (please correct my understanding that may be > > wrong since is the first time I look at this part of the code), at this > > point the HOBs passed from sec phase are processed by PEI so the memory > > could be "detected/mapped/initialized" correctly. But for some reason the > > required HOB is no present at the list. > > > > Could someone with more experience at this part of the code please > confirm > > my understanding, and if possible give some guesses about what could > cause > > this scenario? > > PEI may act differently (produce different HOBs) dependent on boot mode. > The PI spec defines several boot modes; it's platform-dependent what > hardware states / transitions are mapped to what PI boot modes by the > firmware. > > > My guess is that some memory cleanup that should be done by the bios > after > > the application exits is not being done correctly. So I believe the > problem > > is not at the application, but at the BIOS. A friend here mentioned about > > the MemoryTypeInformation efi var, that may be corrupted, and considering > > it's used to guide the boot process it may impact the boot, but I am not > > sure if this is the case and also I didn't find to much information about > > this var and it's usage, so any help about this would be well received > also. > > MemoryTypeInformation measures peak usage (of various UEFI memory types) > during boot, so that at next boot, the internal allocation "bins" can be > primed with large enough sizes. The goal is to reduce fragmentation due > to "unforeseen" allocations. > > If you exit the application gracefully in both scenarios (and the only > difference is whether you reboot the system, or power it down, > afterwards, e.g. by passing different options to the RESET command of > the UEFI shell), then I don't see how MemoryTypeInformation could be > relevant. > > Thanks > Laszlo > _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

