From: Laszlo Ersek <lersek@redhat.com>
To: Jordan Justen <jordan.l.justen@intel.com>,
edk2-devel-01 <edk2-devel@lists.01.org>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
Ruiyu Ni <ruiyu.ni@intel.com>
Subject: Re: [PATCH 2/4] OvmfPkg/Sec/Ia32: seed the temporary RAM with PcdInitValueInTempStack
Date: Mon, 13 Nov 2017 19:36:45 +0100 [thread overview]
Message-ID: <13cae797-05c1-7ea0-0763-707cc1985320@redhat.com> (raw)
In-Reply-To: <151059752091.21010.2353399254871736446@jljusten-skl>
On 11/13/17 19:25, Jordan Justen wrote:
> On 2017-11-10 07:49:06, Laszlo Ersek wrote:
>> diff --git a/OvmfPkg/Sec/Ia32/SecEntry.nasm b/OvmfPkg/Sec/Ia32/SecEntry.nasm
>> index 54d074e621f6..1d426fafa888 100644
>> --- a/OvmfPkg/Sec/Ia32/SecEntry.nasm
>> +++ b/OvmfPkg/Sec/Ia32/SecEntry.nasm
>> @@ -29,6 +29,7 @@ extern ASM_PFX(SecCoreStartupWithStack)
>> ; @param[in] EAX Initial value of the EAX register (BIST: Built-in Self Test)
>> ; @param[in] DI 'BP': boot-strap processor, or 'AP': application processor
>> ; @param[in] EBP Pointer to the start of the Boot Firmware Volume
>> +; @param[in] ES Set to LINEAR_SEL in TransitionFromReal16To32BitFlat
>
> Can you document all the segment registers, and also document them in
> UefiCpuPkg/ResetVector/Vtf0/Main.asm?
Do you mean the above format (i.e., @param[in]...), just repeated for
the other segment registers too?
Regarding "UefiCpuPkg/ResetVector/Vtf0/Main.asm", what format do you
suggest? The @param[in]... format wouldn't be right, because the segment
registers are set up in TransitionFromReal16To32BitFlat. Should I write
a free-form comment / list above
OneTimeCall TransitionFromReal16To32BitFlat
?
>
>> ;
>> ; @return None This routine does not return
>> ;
>> @@ -44,6 +45,18 @@ ASM_PFX(_ModuleEntryPoint):
>> mov esp, ebx
>> nop
>>
>> + ;
>> + ; Fill the temporary RAM with the initial stack value.
>> + ; The loop below will seed the heap as well, but that's harmless.
>> + ;
>> + mov eax, FixedPcdGet32 (PcdInitValueInTempStack) ; dword to store
>> + mov edi, FixedPcdGet32 (PcdOvmfSecPeiTempRamBase) ; base address,
>> + ; relative to ES
>> + mov ecx, FixedPcdGet32 (PcdOvmfSecPeiTempRamSize) ; byte count
>> + shr ecx, 2 ; dword count
>
> I'm not sure, but I think NASM might let you do something like:
>
> mov ecx, FixedPcdGet32 (PcdOvmfSecPeiTempRamSize) / 4
OK, I can try that. I was worried about NASM arithmetic in general, but
I see the "info" page describes "Multiplication and Division", so the
semantics should be well-defined.
>
>> + cld ; store from base up
>> + rep stosd
>
> I think if you move this above the code in patch 1, then patch 1 is
> not needed.
I think I agree (to be seen in practice :) )
> I also think it would be reasonable to merge 2 & 3, but
> separate is fine too.
If I remove the "shr" from both, then I might feel tempted to merge
them; I'm not sure yet. For testing at least I prefer to keep them separate.
Thanks
Laszlo
next prev parent reply other threads:[~2017-11-13 18:32 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-10 15:49 [PATCH 0/4] OvmfPkg: measure temp stack usage, restore temp RAM to 64KB Laszlo Ersek
2017-11-10 15:49 ` [PATCH 1/4] OvmfPkg/Sec/Ia32: free up EAX for other uses while setting up the stack Laszlo Ersek
2017-11-13 18:08 ` Jordan Justen
2017-11-13 18:30 ` Laszlo Ersek
2017-11-10 15:49 ` [PATCH 2/4] OvmfPkg/Sec/Ia32: seed the temporary RAM with PcdInitValueInTempStack Laszlo Ersek
2017-11-10 15:56 ` Ard Biesheuvel
2017-11-10 18:11 ` Laszlo Ersek
2017-11-10 18:27 ` Laszlo Ersek
2017-11-11 9:10 ` Ard Biesheuvel
2017-11-13 18:25 ` Jordan Justen
2017-11-13 18:36 ` Laszlo Ersek [this message]
2017-11-13 19:02 ` Jordan Justen
2017-11-13 20:58 ` Laszlo Ersek
2017-11-10 15:49 ` [PATCH 3/4] OvmfPkg/Sec/X64: " Laszlo Ersek
2017-11-10 15:49 ` [PATCH 4/4] OvmfPkg: restore temporary SEC/PEI RAM size to 64KB Laszlo Ersek
2017-11-11 9:14 ` [PATCH 0/4] OvmfPkg: measure temp stack usage, restore temp RAM " Ard Biesheuvel
2017-11-11 20:38 ` Jordan Justen
2017-11-11 22:04 ` Jordan Justen
2017-11-12 10:58 ` Ard Biesheuvel
2017-11-13 9:08 ` Jordan Justen
2017-11-13 10:09 ` Ard Biesheuvel
2017-11-13 12:34 ` Laszlo Ersek
2017-11-13 13:09 ` Laszlo Ersek
2017-11-13 18:05 ` Jordan Justen
2017-11-13 18:04 ` Jordan Justen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=13cae797-05c1-7ea0-0763-707cc1985320@redhat.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox