Re: [edk2-devel] Execution of TempRamInitApi doesn't return.
So I figured this out and it was a microcode issue. I extracted another set of microcode mcbs for the target platform and added them to the FV, execution returned from TempInitRamApi. I was stuck on this since I didn't have any access to the FSP-T source code and there was no other debugging approaches in this phase. I suspected the issue would be caused by one of the following: - Fsp-T parameter's pointer being passed to the TempRamInitApi - the temporary RAM base wasn't correct - there would be a problem in the microcode I was using, since there wouldn't be any reason for the execution to not return if no.1 and 2 were the issues my suspicions made me focus on No. 3 since a buggy microcode would highly likely crash the processor. I must mention the first set of microcode mcbs used were meant for this platform but somehow they didn't work right. Turns out I guessed it right. On Monday, December 30th, 2024 at 5:11 PM, memristor2 via groups.io wrote: > Any thoughts on this? > even the smallest hints would be highly appreciated. > > Sent with [Proton Mail](https://proton.me/mail/home) secure email. > > On Tuesday, December 24th, 2024 at 6:12 PM, memristor2 via groups.io > wrote: > >> Hello everyone, >> I am trying to build an Intel platform's customized UEFI. >> I have extracted the microcode and FSP binaries from the vendors UEFI image >> successfully. I also changed the PlatformPkg and FspFlashOffset FDF files. >> Execution goes on fine up until the last line of this subroutine: >> >> FspHeaderFound: >> ; Get the fsp TempRamInit Api address >> mov eax, dword [edi + FSP_HEADER_IMAGEBASE_OFFSET] >> add eax, dword [edi + FSP_HEADER_TEMPRAMINIT_OFFSET] >> ; Setup the hardcode stack >> mov esp, TempRamInitStack >> ; Call the fsp TempRamInit Api jmp eax >> >> I have checked the address of TempRamInit Entry which matched the address >> inside the FSP header. >> but somehow it doesn't return to the TempRamInitDone subroutine. I have no >> idea why this happens. I also changed the UPD parameters to match the >> signature of the target platform. >> Any thoughts on this? > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#120941): https://edk2.groups.io/g/devel/message/120941 Mute This Topic: https://groups.io/mt/110272463/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] Execution of TempRamInitApi doesn't return.
Any thoughts on this? even the smallest hints would be highly appreciated. Sent with [Proton Mail](https://proton.me/mail/home) secure email. On Tuesday, December 24th, 2024 at 6:12 PM, memristor2 via groups.io wrote: > Hello everyone, > I am trying to build an Intel platform's customized UEFI. > I have extracted the microcode and FSP binaries from the vendors UEFI image > successfully. I also changed the PlatformPkg and FspFlashOffset FDF files. > Execution goes on fine up until the last line of this subroutine: > > FspHeaderFound: > ; Get the fsp TempRamInit Api address > mov eax, dword [edi + FSP_HEADER_IMAGEBASE_OFFSET] > add eax, dword [edi + FSP_HEADER_TEMPRAMINIT_OFFSET] > ; Setup the hardcode stack > mov esp, TempRamInitStack > ; Call the fsp TempRamInit Api jmp eax > > I have checked the address of TempRamInit Entry which matched the address > inside the FSP header. > but somehow it doesn't return to the TempRamInitDone subroutine. I have no > idea why this happens. I also changed the UPD parameters to match the > signature of the target platform. > Any thoughts on this? > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#120939): https://edk2.groups.io/g/devel/message/120939 Mute This Topic: https://groups.io/mt/110272463/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
[edk2-devel] Execution of TempRamInitApi doesn't return.
Hello everyone, I am trying to build an Intel platform's customized UEFI. I have extracted the microcode and FSP binaries from the vendors UEFI image successfully. I also changed the PlatformPkg and FspFlashOffset FDF files. Execution goes on fine up until the last line of this subroutine: FspHeaderFound: ; Get the fsp TempRamInit Api address mov eax, dword [edi + FSP_HEADER_IMAGEBASE_OFFSET] add eax, dword [edi + FSP_HEADER_TEMPRAMINIT_OFFSET] ; Setup the hardcode stack mov esp, TempRamInitStack ; Call the fsp TempRamInit Api jmp eax I have checked the address of TempRamInit Entry which matched the address inside the FSP header. but somehow it doesn't return to the TempRamInitDone subroutine. I have no idea why this happens. I also changed the UPD parameters to match the signature of the target platform. Any thoughts on this? -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#120933): https://edk2.groups.io/g/devel/message/120933 Mute This Topic: https://groups.io/mt/110272463/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
