public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Ryan Harkin <ryan.harkin@linaro.org>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Leif Lindholm <leif.lindholm@linaro.org>,
	 "edk2-devel@lists.01.org" <edk2-devel@ml01.01.org>,
	Evan Lloyd <evan.lloyd@arm.com>
Subject: Re: ArmPlatformPkg: Allocate VRAM as RuntimeServicesData
Date: Wed, 12 Oct 2016 06:35:11 +0100	[thread overview]
Message-ID: <CAD0U-hLNCMzQpZuDmtLbtBh7Ds+69q9aBUns114hRxPtkkWyWA@mail.gmail.com> (raw)
In-Reply-To: <CAKv+Gu8ERvzPSAb4RdQU=db4MHwO=8hk62-T1umFRw9B5GXzmQ@mail.gmail.com>

On 11 Oct 2016 20:17, "Ard Biesheuvel" <ard.biesheuvel@linaro.org> wrote:
>
> On 11 October 2016 at 18:44, Ryan Harkin <ryan.harkin@linaro.org> wrote:
> > Hi Evan,
> >
> > This was sent to the list with no subject line and I wasn't on CC, so
> > I didn't see it.
> >
> > Are you still using this patch and want it in, i.e. does it need
> > review and test?
> >
>
> I'm sure it works, but I don't think we should take it.
> RuntimeServicesData can never be released to the OS, so taking an 8MB
> chunk just in case the OS may decide to drive the framebuffer using
> the firmware's protocol rather than via a native driver is not
> something we should have in reference code.
>
> The GOP protocol is arguably a hack anyway, since the entire protocol
> database and driver tree are torn down after ExitBootServices(), while
> the GOP leaves a live memory range in place that happens to keep
> operating as a framebuffer. If the OS wants to use this protocol
> during normal operation, it should take care to reserve this memory
> region itself.
>
> I am aware that not all OSes may behave correctly in this regard. This
> is mainly due to the fact that GOP is usually implemented by a PCI
> device, which exposes the framebuffer via a PCI BAR rather than via a
> system memory range.
>

Fair enough, I'll leave it!

>
>
> > On 4 March 2016 at 15:57,  <evan.lloyd@arm.com> wrote:
> >> Code at: https://github.com/EvanLloyd/tianocore/commit/
> >> From: Sami Mujawar <sami.mujawar@arm.com>
> >> Date: Thu, 25 Feb 2016 15:07:40 +0000
> >> Subject: [PATCH] ArmPlatformPkg: Allocate VRAM as RuntimeServicesData
> >>
> >> The UEFI specification allows the operating system (OS) to use the
> >> Graphics Output Protocol (GOP) in the following scenarios:
> >>  a. as part of the startup process and
> >>  b. prior to loading of a high performance OS graphics driver
> >>
> >> If the VRAM is allocated as BootServicesData, then it is unmapped on
> >> exit boot services. This prevents GOP usage by the OS post exit boot
> >> services (the second scenario); as it results in a crash when the VRAM
> >> is accessed.
> >>
> >> This patch fixes the issue by allocating VRAM as RuntimeServicesData.
> >>
> >> Code at:
https://github.com/EvanLloyd/tianocore/commit/18fab16a63c59c84c71cd81089a55a4081ebe253
> >>
> >> Contributed-under: TianoCore Contribution Agreement 1.0
> >> Signed-off-by: Alexei Fedorov <alexei.fedorov@arm.com>
> >> Signed-off-by: Girish Pathak <girish.pathak@arm.com>
> >> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
> >> Signed-off-by: Evan Lloyd <evan.lloyd@arm.com>
> >> ---
> >>
ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c
| 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git
a/ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c
b/ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c
> >> index a578467..4ab8862 100644
> >> ---
a/ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c
> >> +++
b/ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c
> >> @@ -133,7 +133,7 @@ LcdPlatformGetVram (
> >>    } else {
> >>      AllocationType = AllocateAddress;
> >>    }
> >> -  Status = gBS->AllocatePages (AllocationType, EfiBootServicesData,
EFI_SIZE_TO_PAGES(((UINTN)LCD_VRAM_SIZE)), VramBaseAddress);
> >> +  Status = gBS->AllocatePages (AllocationType,
EfiRuntimeServicesData, EFI_SIZE_TO_PAGES(((UINTN)LCD_VRAM_SIZE)),
VramBaseAddress);
> >>    if (EFI_ERROR(Status)) {
> >>      return Status;
> >>    }
> >> --
> >> 2.7.0
> >>
> >> _______________________________________________
> >> edk2-devel mailing list
> >> edk2-devel@lists.01.org
> >> https://lists.01.org/mailman/listinfo/edk2-devel
> > _______________________________________________
> > edk2-devel mailing list
> > edk2-devel@lists.01.org
> > https://lists.01.org/mailman/listinfo/edk2-devel


  reply	other threads:[~2016-10-12  5:35 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-11 17:44 ArmPlatformPkg: Allocate VRAM as RuntimeServicesData Ryan Harkin
2016-10-11 19:17 ` Ard Biesheuvel
2016-10-12  5:35   ` Ryan Harkin [this message]
2016-10-12 11:39   ` Evan Lloyd
2016-10-12 12:53     ` Ryan Harkin

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=CAD0U-hLNCMzQpZuDmtLbtBh7Ds+69q9aBUns114hRxPtkkWyWA@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