public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Andrew Fish" <afish@apple.com>
To: devel@edk2.groups.io, per_sundstrom@yahoo.com
Subject: Re: [edk2-devel] Initial PXE boot over IPv6
Date: Fri, 27 Mar 2020 10:05:49 -0700	[thread overview]
Message-ID: <15C7FD98-549E-43B7-93B3-EA71F88F393E@apple.com> (raw)
In-Reply-To: <ZmVE.1585324286657675586.AVVl@groups.io>

[-- Attachment #1: Type: text/plain, Size: 2813 bytes --]

/Per,

PCD's are a Platform Configuration Database that is used in the edk2. Values can be compiled in, patched in binaries, or looked up dynamically in a database. The idea is the consuming code, like the UefiPxeBcDxe driver, codes stays the same and the platform sets the mechanism that is used. It looks like value you care about is resolving to a compiled in constant. 

If you want to change the value in the build go to  OvmfPkg/OvmfPkgX64.dsc (or the platform build DSC file you are using) under the [PcdsFixedAtBuild] section add this line:
  gEfiNetworkPkgTokenSpaceGuid.PcdIPv4PXESupport|0

This PCD value is defined here: NetworkPkg/NetworkPkg.dec
[PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
...
  ## IPv4 PXE support
  # 0x01 = PXE Enabled
  # 0x00 = PXE Disabled
  gEfiNetworkPkgTokenSpaceGuid.PcdIPv4PXESupport|0x01|UINT8|0x10000009

The list of types define (DEClare) the legal PCD types and the default value. Adding the info to the OVMF DSC file lets the platform build control the PCD type and the default value. 

Feel free to file a bugzilla and ask for a command line build option to control this feature. 

Thanks,

Andrew Fish


> On Mar 27, 2020, at 8:51 AM, per_sundstrom via Groups.Io <per_sundstrom=yahoo.com@groups.io> wrote:
> 
> Hi,
> I want to exclusively use PXE/IPv6 when deploying a set of physical machines with some QEMU/KVM virtual machines on top.
> 
> So far, the only [hacky] way I have managed to do this is to:
> 1) Bring up a VM with OVMF
> 2) Set the wanted boot-order with PXE over IPv6 at the top
> 3) Save this to the NVRAM
> 4) Repete the above for a set of VMs with different MAC addresse
> 5) Keep these NVRAMs as "canned" templates (with associated fixed MACs)
> 4) Later use one of these NVRAM as a template for VMs with the associated MAC 
> 
> Obviously this does not scale to hundreds of VMs
> 
> Reading through the code is seems that it might be possible to disable PXE over IPv4 with
> the PCD variable "IPv4PXESupport" = <one byte binary zero>.
> 
> I have tried with
>     <qemu:arg value='-fw_cfg'/>
>     <qemu:arg value='opt/ovmf/X-PcdIPv4PXESupport,file=/var/lib/libvirt/qemu/nvram/zero'/>
> 
> where the file is a one byte binary zero and I have verified that it shows up in /sys/firmware/qemu_fw_cfg.
> linux-u7u9:/sys/firmware/qemu_fw_cfg/by_name # ls opt/ovmf/X-PcdIPv4PXESupport/
> key  name  raw size
> linux-u7u9:/sys/firmware/qemu_fw_cfg/by_name # cat opt/ovmf/X-PcdIPv4PXESupport/size 
> 1
> linux-u7u9:/sys/firmware/qemu_fw_cfg/by_name # od -b opt/ovmf/X-PcdIPv4PXESupport/raw 
> 0000000 000
> Is this something that should work, or is this variable compiled in ?
> Are there other ways of acomplishing what I try to do ?
> 
> Thanks,
> 
>    /Per
> 


[-- Attachment #2: Type: text/html, Size: 4458 bytes --]

  reply	other threads:[~2020-03-27 17:05 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-27 15:51 Initial PXE boot over IPv6 per_sundstrom
2020-03-27 17:05 ` Andrew Fish [this message]
2020-03-27 17:38   ` [edk2-devel] " per_sundstrom
2020-03-27 23:01   ` Laszlo Ersek

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=15C7FD98-549E-43B7-93B3-EA71F88F393E@apple.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