public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: Saqib Khan <saqib.khan2011@gmail.com>
Cc: edk2-devel@ml01.01.org
Subject: Re: Help Required legacy booting from an EFI
Date: Fri, 23 Sep 2016 05:33:01 +0200	[thread overview]
Message-ID: <e5eac60d-5773-b80e-4262-2c1fe246029f@redhat.com> (raw)
In-Reply-To: <CAF=YJJ8HftJnX3F05z7MgVHSKOW+yaCkKzf5ZpndBo5omfJ-0A@mail.gmail.com>

On 09/22/16 13:25, Saqib Khan wrote:
> okay so i started with "MdeModulePkg\Application\BootManagerMenuApp" 
> addded follwoing package in inf file
> 
>  1. IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
>  2. IntelFrameworkPkg/IntelFrameworkPkg.dec
> 
> and follwing libraries
> 
>  1. LegacyBootManagerLib
>  2. LegacyBootMaintUiLib
> 
> and then i added library reference in C:\efi\test\edk2\DuetPkg/DuetPkgX6.dsc
> 
>  1. LegacyBootManagerLib|IntelFrameworkModulePkg/Library/LegacyBootManagerLib/LegacyBootManagerLib.inf
>  2. LegacyBootMaintUiLib|IntelFrameworkModulePkg/Library/LegacyBootMaintUiLib/LegacyBootMaintUiLib.inf
> 
> Then in included  <Library/LegacyBootMaintUi.h> in
> \MdeModulePkg\Application\BootManagerMenuApp\BootManagerMenuApp.h  then
> i attempted top call " GetLegacyOptions
> "
> 
> 
> then i built it with  *Build -a X64 -p DuetPkg/DuetPkgX64.dsc
> *
> 
> 
> It is unable to find LegacyBootMaintUi.h also .i am unable find where i
> am wrong ...i have followed build path from
> 
> https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-Writing-Simple-Application
> 
> 
> can any one point out where i am wrong?

The header file that you are trying to include, in the source code of
another module, is actually a library-internal header file:

IntelFrameworkModulePkg/Library/LegacyBootMaintUiLib/LegacyBootMaintUi.h

Library class header files that define public APIs always have pathnames
with the pattern

FooPkg/Include/Library/BarLib.h


I'm getting confused about what you want to achieve. You wrote "Now i
want to develop an EFI which will first run Helloworld EFI then it will
boot windows 7 which is installed on legacy boot (NOT EFI)."

To my knowledge, if you have a UEFI boot option for a legacy OS (with
the BBS devpath stuff in it), then EfiBootManagerBoot() in
UefiBootManagerLib can boot it transparently, assuming all the legacy
support has been built in (see my previous email).

Ultimately the legacy OS is booted with the
EFI_LEGACY_BIOS_PROTOCOL.LegacyBoot(), which takes the BBS device path
as a parameter. See LegacyBmBoot() in
"IntelFrameworkModulePkg/Library/LegacyBootManagerLib/LegacyBm.c".

Anyway I think this would be best discussed with Ray, as I'm just
another user of UefiBootManagerLib, through OVMF's PlatformBDS. What you
are trying to do doesn't seem like regular boot manager / Platform BDS
behavior.

Laszlo


  reply	other threads:[~2016-09-23  3:33 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-19 15:00 Help Required legacy booting from an EFI Saqib Khan
2016-09-19 17:49 ` Laszlo Ersek
2016-09-20 18:38   ` Saqib Khan
2016-09-20 19:13     ` Laszlo Ersek
2016-09-22 11:25       ` Saqib Khan
2016-09-23  3:33         ` Laszlo Ersek [this message]
2016-09-20 19:41     ` Rod Smith

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=e5eac60d-5773-b80e-4262-2c1fe246029f@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