On 05/18/16 16:31, El-Haj-Mahmoud, Samer wrote:
> Thanks Laszlo. I am familiar with those documents, and did review
> them in USWG when the feature was introduced.

Ah, great, then you know much more about the background and use cases
than I do :)

> And most of the content of those ECRs is now publically available in
> the UEFI Spec. None of them discuss or hint to an HII menu or its
> design.

That sounds promising. If the HII checkbox for the memory type is not
counter-design, then I guess it shouldn't be too hard to reach
consensus, and add it. (Famous last words? :)) Not that I'm volunteering! :)

Thanks
Laszlo

> 
> 
> 
> 
> -----Original Message----- From: Laszlo Ersek
> [mailto:[email protected]] Sent: Wednesday, May 18, 2016 9:28 AM To:
> El-Haj-Mahmoud, Samer <[email protected]>; Andrew Fish
> <[email protected]>; Foster, Matthew I <[email protected]>;
> [email protected] Cc: [email protected]
> <[email protected]> Subject: Re: [edk2] Using the Shell to
> launch a kernel using a RAMDISK
> 
> On 05/18/16 16:09, El-Haj-Mahmoud, Samer wrote:
>> Thanks Laszlo!
>> 
>> I missed that thread.
>> 
>> I did not participate in the original design either (where is the
>> original design anyway? Is it public on the EDK2 list)?
> 
> Probably on the closed USWG mailing list, and/or attached to
> (similarly closed) Mantis tickets, as ECR documents.
> 
> According to the Mantis changelog at the beginning of the UEFI spec
> v2.6, the relevant tickets are:
> 
> 1268 RAM Disk UEFI Device Path Node 1466 UEFI Ram disk protocol
> 
> https://mantis.uefi.org/mantis/view.php?id=1268 
> https://mantis.uefi.org/mantis/view.php?id=1466
> 
> ... Yep, I can see some docs attached to those. Log in to Mantis and
> peruse them. :)
> 
> Thanks Laszlo
> 
>> Feng,
>> 
>> Do you mind if I submit a patch to update the HII to support
>> allocating Reserved memory RAM Disks? This will help a lot in
>> troubleshooting.
>> 
>> Thanks, --Samer
>> 
>> 
>> -----Original Message----- From: edk2-devel
>> [mailto:[email protected]] On Behalf Of Laszlo Ersek 
>> Sent: Wednesday, May 18, 2016 9:04 AM To: El-Haj-Mahmoud, Samer
>> <[email protected]>; Andrew Fish <[email protected]>;
>> Foster, Matthew I <[email protected]> Cc:
>> [email protected] <[email protected]> Subject: Re:
>> [edk2] Using the Shell to launch a kernel using a RAMDISK
>> 
>> On 05/18/16 15:48, El-Haj-Mahmoud, Samer wrote:
>>> Does it make sense to update the RAM Disk HII (at 
>>> \MdeModulePkg\Universal\Disk\RamDiskDxe) to allow creating a RAM
>>> Disk of Type Reserved, for this kind of testing?
>> 
>> That's exactly what I suggested in
>> 
>> http://thread.gmane.org/gmane.comp.bios.edk2.devel/10766/focus=10770
>>
>>
>> 
Namely,
>> 
>>> [...] I think this question should be exposed with a checkbox on
>>> the form: "will you want to boot from this RAM disk?" And then
>>> the answer to that question should determine the type of memory
>>> the RAM disk is allocated from.
>> 
>> but it was not approved; Feng said later in the thread,
>> 
>>> [...] For those ramdisk created from Ramdisk HII, the original
>>> design intention is only for boot time use.
>> 
>> I had not participated in the design, so I didn't question it.
>> 
>> Thanks Laszlo
>> 
>>> -----Original Message----- From: edk2-devel
>>> [mailto:[email protected]] On Behalf Of Laszlo
>>> Ersek Sent: Wednesday, May 18, 2016 4:39 AM To: Andrew Fish
>>> <[email protected]>; Foster, Matthew I 
>>> <[email protected]> Cc: [email protected]
>>> <[email protected]> Subject: Re: [edk2] Using the Shell to
>>> launch a kernel using a RAMDISK
>>> 
>>> On 05/18/16 01:16, Andrew Fish wrote:
>>>> 
>>>>> On May 17, 2016, at 4:08 PM, Foster, Matthew I
>>>>> <[email protected]> wrote:
>>>>> 
>>>>> Thanks Ersek,
>>>>> 
>>>> 
>>>> Laszlo...
>>> 
>>> That's right, thanks Andrew :)
>>> 
>>>>> I did change my code to match what you have here as far as
>>>>> the allocation. I did some more debugging and registered up a
>>>>> callback in exit boot services, and did an integrity check of
>>>>> the memory I previously allocated and put the ramdisk in. I
>>>>> checked the memory right before I call loadimage (to launch
>>>>> the kernel), and then again I check in the callback during
>>>>> exit boot services. So some point between the memory actually
>>>>> does get changed. So it might be something happening during
>>>>> exit boot services.
>>>>> 
>>>>> Just a question, after allocating that memory as you
>>>>> mentioned below, other code should not be able to allocate
>>>>> and use that same address range right?
>>>> 
>>>> The EFI Memory Map is well defined and you can read about it in
>>>>  Section 6.2 Memory Allocation Services.
>>> 
>>> Yeah, once allocated (and not freed), those pages should never be
>>> handed out to any other agent calling gBS->AllocatePool() or
>>> gBS->AllocatePages().
>>> 
>>> The memory corruption issue is very interesting. I have faced
>>> similar earlier, several times. I've developed methods for trying
>>> to dealing with it ("develop methods" is a fancy expression for
>>> just a few basic ideas, of course :))
>>> 
>>> - The integrity check you mention. Since we are not talking about
>>> a malicious attacker, just (likely) a genuine bug somewhere, the 
>>> CalculateCrc32() boot service is usually helpful in pointing out
>>> corruption.
>>> 
>>> - CRC32 can also be computed on a set of smaller blocks, not just
>>> the entire image. I usually don't try to keep the CRCs in an
>>> array (for later comparison) -- instead I dump the CRCs to the
>>> debug log, and compare the values (before vs. after) with text
>>> processing utilities.
>>> 
>>> - Once you managed to narrow down the location of the corruption
>>> a little bit, you can hexdump the entire block, and compare its
>>> before / after contents.
>>> 
>>> - Occasionally it can help to look at the ASCII representation of
>>> the differring blocks. For example, many structures in edk2 start
>>> with a 32-bit or 64-bit signature (see the SIGNATURE_32 and
>>> SIGNATURE_64 macros), and the signature is usually an
>>> abbreviation of English words in ASCII. If you find some
>>> signatures, you might be able to deduce where they come from
>>> (IOW, the nature of the data discloses the origin of the data).
>>> 
>>> [snip]
>>> 
>>> Thanks Laszlo _______________________________________________ 
>>> edk2-devel mailing list [email protected] 
>>> https://lists.01.org/mailman/listinfo/edk2-devel
>>> 
>> 
>> _______________________________________________ edk2-devel mailing
>> list [email protected] 
>> https://lists.01.org/mailman/listinfo/edk2-devel
>> 
> 

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to