public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
To: Laszlo Ersek <lersek@redhat.com>
Cc: Sakar Arora <sakar.arora@nxp.com>,
	"edk2-devel@lists.01.org" <edk2-devel@ml01.01.org>
Subject: Re: Exporting discontiguous System Memory to EFI STUB
Date: Thu, 15 Sep 2016 12:31:05 +0100	[thread overview]
Message-ID: <CAKv+Gu8mS3LWZwW2EQKqJk4wae+PWo=LDdZF8k7x5K911TBwSw@mail.gmail.com> (raw)
In-Reply-To: <b708af13-3fba-e9d2-fd14-36f7f426e9f9@redhat.com>

On 15 September 2016 at 10:01, Laszlo Ersek <lersek@redhat.com> wrote:
> On 09/15/16 10:45, Sakar Arora wrote:
>> Hi
>>
>> This is in aarch64 UEFI context.
>>
>> The efi stub code ignores any memory nodes in the device tree. It
>> only relies on the UEFI memory map for memory info.
>>
>> In such a scenario, how can one export discontiguous regions of
>> system memory to the efi stub? There seems to be only one way to
>> inform UEFI about system memory, via PcdSystemMemoryBase.
>>
>> Looking at the latest Arm Juno code, it seems like building a memory
>> resource descriptor hob, for the extra memory region, does the trick.
>> Would that be the best way to go?
>>
>> Suggestions please.
>
> There are two ways.
>
> First, in the PEI phase, you can produce memory resource descriptor HOBs
> that will describe system memory areas. When the DXE core starts, it
> will convert the suitable HOBs to EfiGcdMemoryTypeSystemMemory memory
> space. During DXE and BDS, boot/runtime code/data allocations will be
> satisfied from these. Then the UEFI memmap will reflect those
> allocations, and the system memory left unused, to the EFI stub.
>
> Second, you can add EfiGcdMemoryTypeSystemMemory memory space during and
> after the DXE phase, explicitly, using the DXE services. (IIRC, the PI
> spec says that memory space added this way may be picked by the UEFI
> memory allocation system immediately; IOW, it may immediately become
> available to the pool and page allocation boot serivces, to allocate
> from. IIRC, in edk2 this actually happens.) The rest is the same as
> above, wrt. the UEFI memmap.
>
> You can see an example for the second method under
> "ArmVirtPkg/HighMemDxe". I think it might be particularly close to your
> use case, as it practically translates the memory nodes found in QEMU's
> (copied) DTB to EfiGcdMemoryTypeSystemMemory memory space.
>
> (Ard, when do you plan to port this driver to FDT_CLIENT_PROTOCOL? :))
>

Any day now :-)

But seriously, I think this is orthogonal to the question, since I
don't expect that this platform uses DTB to describe the platform *to
UEFI*, and it would not run any of the runtime DT probing code.

So in this particular case, it is simply a matter of adding the
additional memory at any point during the execution of UEFI that is
convenient, by using one of the two methods you describe.

Thanks,
Ard.


  reply	other threads:[~2016-09-15 11:31 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <VI1PR04MB2173B4CEB9AB3ED7B4DAEC93F8F00@VI1PR04MB2173.eurprd04.prod.outlook.com>
2016-09-15  8:45 ` Exporting discontiguous System Memory to EFI STUB Sakar Arora
2016-09-15  9:01   ` Laszlo Ersek
2016-09-15 11:31     ` Ard Biesheuvel [this message]
2016-09-21  9:10       ` Bhupesh Sharma
2016-09-21 11:17         ` Laszlo Ersek
2016-09-21 11:20           ` Ard Biesheuvel
2016-09-21 11:32             ` Laszlo Ersek
2016-09-21 11:32             ` Bhupesh Sharma
2016-09-21 11:36               ` Ard Biesheuvel

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='CAKv+Gu8mS3LWZwW2EQKqJk4wae+PWo=LDdZF8k7x5K911TBwSw@mail.gmail.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