On 06/08/20 19:34, Ard Biesheuvel wrote: > In preparation for making the self-relocating PrePi use the ordinary > BasePeCoffLib routines for relocating the image in place in memory > at start, add a special FDF rule that builds SEC modules as PE32 > images with the relocation metadata preserved. > > Signed-off-by: Ard Biesheuvel <[email protected]> > --- > ArmVirtPkg/ArmVirtQemuKernel.fdf | 2 +- > ArmVirtPkg/ArmVirtXen.fdf | 2 +- > ArmVirtPkg/ArmVirtRules.fdf.inc | 5 +++++ > 3 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/ArmVirtPkg/ArmVirtQemuKernel.fdf > b/ArmVirtPkg/ArmVirtQemuKernel.fdf > index 72fc8dd698f8..55e33aba0d55 100644 > --- a/ArmVirtPkg/ArmVirtQemuKernel.fdf > +++ b/ArmVirtPkg/ArmVirtQemuKernel.fdf > @@ -136,7 +136,7 @@ [FV.FVMAIN_COMPACT] > READ_LOCK_CAP = TRUE > READ_LOCK_STATUS = TRUE > > - INF ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf > + INF RuleOverride = SELF_RELOC > ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf > > FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { > SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED > = TRUE { > diff --git a/ArmVirtPkg/ArmVirtXen.fdf b/ArmVirtPkg/ArmVirtXen.fdf > index 6a97bceeacbc..f708878f4965 100644 > --- a/ArmVirtPkg/ArmVirtXen.fdf > +++ b/ArmVirtPkg/ArmVirtXen.fdf > @@ -233,7 +233,7 @@ [FV.FVMAIN_COMPACT] > READ_LOCK_CAP = TRUE > READ_LOCK_STATUS = TRUE > > - INF ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf > + INF RuleOverride = SELF_RELOC > ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf > > FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { > SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED > = TRUE { > diff --git a/ArmVirtPkg/ArmVirtRules.fdf.inc b/ArmVirtPkg/ArmVirtRules.fdf.inc > index 63de26abe056..8496767c718e 100644 > --- a/ArmVirtPkg/ArmVirtRules.fdf.inc > +++ b/ArmVirtPkg/ArmVirtRules.fdf.inc > @@ -39,6 +39,11 @@ [Rule.Common.SEC] > TE TE Align = Auto $(INF_OUTPUT)/$(MODULE_NAME).efi > } > > +[Rule.Common.SEC.SELF_RELOC] > + FILE SEC = $(NAMED_GUID) { > + PE32 PE32 Align = Auto $(INF_OUTPUT)/$(MODULE_NAME).efi > + } > + > [Rule.Common.PEI_CORE] > FILE PEI_CORE = $(NAMED_GUID) FIXED { > TE TE Align = Auto $(INF_OUTPUT)/$(MODULE_NAME).efi >
Reviewed-by: Laszlo Ersek <[email protected]> -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#60985): https://edk2.groups.io/g/devel/message/60985 Mute This Topic: https://groups.io/mt/74757208/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
