On 29 August 2014 12:58, Laszlo Ersek <[email protected]> wrote: > On 08/29/14 10:14, Ard Biesheuvel wrote: >> On 29 August 2014 09:53, Ard Biesheuvel <[email protected]> wrote: > >>> build.py... >>> /home/ard/build/uefi-next/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc(...): >>> error 1001: Module type [SEC] is not supported by library instance >>> [/home/ard/build/uefi-next/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf] >>> consumed by >>> [/home/ard/build/uefi-next/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf] >>> >>> which i am trying to bisect now. >>> >> >> OK, it turns out Olivier has submitted an incompatible change here: >> >> af16798ef77da84487ed8e64bc955fbd12ac9b1f >> [EmbeddedPkg/FdtLib: Added support to load Fdt from Semihosting] >> >> which adds functionality to FdtLib which makes it depend on the boot >> services table. >> I am going to go ahead and split that into two libraries, hopefully >> Olivier will be ok with that once he gets around to looking into this >> stuff > > That's case (2) then. > > And, indeed, it's *very* important to keep FdtLib a BASE library, with > no dependencies on any UEFI-phase-specifics. I recently had a short > email chat with David Gibson, where I said > > Wow, David (CC'd :)) *actually* meant this code to be embedded in > firmware. > > and he said > > Yes, yes I did. [...] > > I deliberately kept the dependencies in libfdt to an absolute > minimum to make it easy to use in limited environments. It uses a > small handful of string.h functions, and that's it. No malloc > required, no stdio required. > > So that's how it should remain in edk2 as well. (At least, such a > compatible version should remain available.) > > Hm, let's see af16798ef77da84487ed8e64bc955fbd12ac9b1f. > > - New function InstallFdtIntoConfigurationTable() is not needed for > modules that only want to parse the DTB. For a SEC module eg., the UEFI > configuration table doesn't exist. > > - New function InstallFdtFromSemihosting() is similarly unrelated to DTB > parsing. It's a way to retrieve the DTB, and just as use-case specific > as our own peculiar way in virt. Doesn't belong to the base library. > > My proposal (trivial, of course): > - revert this commit > - simply introduce another library (new lib class even) in EmbeddedPkg > - add a lib instance implementing this class, with these new functions > - new lib instance should depend on (unmodified) FdtLib > - add new lib class dependency to originally dependent modules >
@Olivier: how do you propose we handle this? FdtLib has now become unusable in SEC or PEI -- Ard. ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
