public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Yao, Jiewen" <jiewen.yao@intel.com>
To: Marvin H?user <Marvin.Haeuser@outlook.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: MinPlatformPkg/PlatformInit: FV code
Date: Fri, 2 Feb 2018 12:39:46 +0000	[thread overview]
Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503AAAA932@shsmsx102.ccr.corp.intel.com> (raw)
In-Reply-To: <AM4PR06MB1491ECFC07134F7DF5B37CBA80E40@AM4PR06MB1491.eurprd06.prod.outlook.com>

Excellent question.

Comment inline.

From: Marvin H?user [mailto:Marvin.Haeuser@outlook.com]
Sent: Wednesday, January 31, 2018 1:54 AM
To: edk2-devel@lists.01.org; Yao, Jiewen <jiewen.yao@intel.com>
Subject: MinPlatformPkg/PlatformInit: FV code

Dear developers, dear Jiewen,

I have been investigating the devel-MinPlatform branch of edk2-platforms for educational purposes and got two questions regarding the Firmware Volume code in PlatformInitPreMem, if you do not mind. I assume the tree was tested, so most likely I misunderstood some things.


  1.  Why is a Firmware Volume HOB built to cover the entire flash range (https://github.com/tianocore/edk2-platforms/blob/devel-MinPlatform/Platform/Intel/MinPlatformPkg/PlatformInit/PlatformInitPei/PlatformInitPreMem.c#L379)? Am I correct that this implies a FV spanning through the entire flash MMIO range, which would then imply all other FVs are contained within it? This would make sense, however that's not what I saw in the KabylakeOpenBoardPkg Flash Map, which has the NV Storage first (https://github.com/tianocore/edk2-platforms/blob/devel-MinPlatform/Platform/Intel/KabylakeOpenBoardPkg/Include/Fdf/FlashMapInclude.fdf#L25).

[Jiewen] You are right. We should not use FD region for FV. Will fix it.



  1.  Why are FV Info PPIs installed for the UefiBoot and the OsBoot FVs (https://github.com/tianocore/edk2-platforms/blob/devel-MinPlatform/Platform/Intel/MinPlatformPkg/PlatformInit/PlatformInitPei/PlatformInitPreMem.c#L344)? If I checked correctly, installing this PPI type will trigger PeiCore to dispatch PEIMs in the FVs, however there are only DXE drivers in these. Why are no FV HOBs installed, which are gotten by DxeCore?

[Jiewen] In DxeIpl, PeiServicesFfsFindNextVolume() is used to search DxeCore.
In PeiCore, PeiFfsFindNextVolume() calls FindNextCoreFvHandle() for DxeCore one by one. If PcdFrameworkCompatibilitySupport is FALSE, it returns &Private->Fv[Instance] directly.

And Fv[Instance] is added in FirmwareVolmeInfoPpiNotifyCallback(), when gEfiPeiFirmwareVolumeInfo2PpiGuid is installed.

So if PcdFrameworkCompatibilitySupport is FALSE, install PPI is the only way to let PEI core discover DxeCore.
Only if PcdFrameworkCompatibilitySupport is TRUE, install PPI is not required, but the FindNextCoreFvHandle() will install the PPI for the HobFv. The result is same.


Thank you
Yao Jiewen




Thanks in advance for your time!

Best regards,
Marvin.


  reply	other threads:[~2018-02-02 12:34 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-30 17:53 MinPlatformPkg/PlatformInit: FV code Marvin H?user
2018-02-02 12:39 ` Yao, Jiewen [this message]
2018-02-02 18:30   ` Marvin H?user
2018-02-03  1:54     ` Yao, Jiewen
2018-02-03  5:21       ` Yao, Jiewen

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=74D8A39837DF1E4DA445A8C0B3885C503AAAA932@shsmsx102.ccr.corp.intel.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