Oops, Monday morning... I actually wanted to check if it was a PCD. And I think it should be a PCD in case we have different build variations that require more or less padding.
And it does not explain why this value disappear later on. Maybe a later patch will give me the answer... > -----Original Message----- > From: Ard Biesheuvel [mailto:[email protected]] > Sent: 26 January 2015 11:48 > To: Olivier Martin > Cc: [email protected]; Laszlo Ersek; Roy Franz; Leif > Lindholm; Stefano Stabellini; [email protected]; Anthony PERARD; > Christoffer Dall; [email protected]; Ilias Biris > Subject: Re: [PATCH v1 06/21] ArmVirtualizationPkg: add padding to FDT > allocation > > On 26 January 2015 at 11:47, Olivier Martin <[email protected]> > wrote: > > I am a bit lost with this patch. I am looking for the definition of > > FDT_PADDING. I cannot find it in the previous patches and in > subversion. > > It is in the first hunk of *this* patch > > > And it looks like it is going to be removed later on as I cannot find > it > > anymore in the HEAD of your branch > > https://git.linaro.org/people/ard.biesheuvel/uefi- > next.git/shortlog/refs/hea > > ds/linaro-topic-xen. > > > >> -----Original Message----- > >> From: Ard Biesheuvel [mailto:[email protected]] > >> Sent: 23 January 2015 15:03 > >> To: [email protected]; [email protected]; Olivier > >> Martin; [email protected]; [email protected]; > >> [email protected]; [email protected]; > >> [email protected]; [email protected]; xen- > >> [email protected]; [email protected] > >> Cc: Ard Biesheuvel > >> Subject: [PATCH v1 06/21] ArmVirtualizationPkg: add padding to FDT > >> allocation > >> > >> Our primary user QEMU/mach-virt presents us with a FDT blob padded > >> to 64 KB with plenty of room to set additional properties. However, > >> in the general case, we should only add properties after making sure > >> there is enough room available. > >> > >> Contributed-under: TianoCore Contribution Agreement 1.0 > >> Signed-off-by: Ard Biesheuvel <[email protected]> > >> --- > >> .../Library/PlatformPeiLib/PlatformPeiLib.c | 17 > >> +++++++++++++---- > >> 1 file changed, 13 insertions(+), 4 deletions(-) > >> > >> diff --git > >> > a/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPe > >> iLib.c > >> > b/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPe > >> iLib.c > >> index f2404f89d152..540474608deb 100644 > >> --- > >> > a/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPe > >> iLib.c > >> +++ > >> > b/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPe > >> iLib.c > >> @@ -24,6 +24,15 @@ > >> #include <Guid/EarlyPL011BaseAddress.h> > >> #include <Guid/FdtHob.h> > >> > >> +// > >> +// We may want to apply some changes to the device tree before > passing > >> it > >> +// to the OS: for instance, if we find a PL031 RTC node and attach > our > >> +// runtime driver to it, we should disable it in the device tree by > >> setting > >> +// its status property to "disabled". Add some padding to make sure > >> this is > >> +// possible. > >> +// > >> +#define FDT_PADDING 256 > > > here ^^^ > > > >> + > >> EFI_STATUS > >> EFIAPI > >> PlatformPeim ( > >> @@ -32,7 +41,7 @@ PlatformPeim ( > >> { > >> VOID *Base; > >> VOID *NewBase; > >> - UINTN FdtSize; > >> + UINTN FdtPages; > >> UINTN *FdtHobData; > >> UINT64 *UartHobData; > >> INT32 Node, Prev; > >> @@ -46,10 +55,10 @@ PlatformPeim ( > >> Base = (VOID*)(UINTN)PcdGet64 (PcdDeviceTreeInitialBaseAddress); > >> ASSERT (Base != NULL && fdt_check_header (Base) == 0); > >> > >> - FdtSize = fdt_totalsize (Base); > >> - NewBase = AllocatePages (EFI_SIZE_TO_PAGES (FdtSize)); > >> + FdtPages = EFI_SIZE_TO_PAGES (fdt_totalsize (Base) + > FDT_PADDING); > >> + NewBase = AllocatePages (FdtPages); > >> ASSERT (NewBase != NULL); > >> - CopyMem (NewBase, Base, FdtSize); > >> + fdt_open_into (Base, NewBase, EFI_PAGES_TO_SIZE (FdtPages)); > >> > >> FdtHobData = BuildGuidHob (&gFdtHobGuid, sizeof *FdtHobData); > >> ASSERT (FdtHobData != NULL); > >> -- > >> 1.8.3.2 > >> > > > > > > > > ------------------------------------------------------------------------------ Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
