On Tue, Dec 12, 2017 at 06:09:13PM +0000, Ard Biesheuvel wrote: > On 12 December 2017 at 17:50, Leif Lindholm <[email protected]> wrote: > > On Tue, Dec 12, 2017 at 05:35:15PM +0000, Ard Biesheuvel wrote: > >> On 12 December 2017 at 17:32, Leif Lindholm <[email protected]> > >> wrote: > >> > Suggested subject tweak: > >> > Silicon/SynQuacer: disable PCI RC #0 DT node if disabled -> > >> > Silicon/SynQuacer: disable PCI RC DT node if RC disabled. > >> > > >> > >> Ack. It's out of date, as you probably suspected > >> > >> > The code below will disable either #0 or #1 node if not enabled by > >> > Pcd. > >> > > >> > On Tue, Dec 12, 2017 at 10:38:04AM +0000, Ard Biesheuvel wrote: > >> >> If PCIe RC #0 is not enabled (due to the fact that the slot is not > >> >> populated), set its DT node 'status' property to 'disabled' so that > >> >> the OS will not attempt to attach to it. > >> >> > >> >> This means we will need to switch from the default > >> >> DtPlatformDtbLoaderLib > >> >> to a special one for our platform. > >> >> > >> >> Contributed-under: TianoCore Contribution Agreement 1.1 > >> >> Signed-off-by: Ard Biesheuvel <[email protected]> > >> >> --- > >> >> Platform/Socionext/DeveloperBox/DeveloperBox.dsc > >> >> | 8 +- > >> >> Platform/Socionext/SynQuacerEvalBoard/SynQuacerEvalBoard.dsc > >> >> | 3 +- > >> >> > >> >> Silicon/Socionext/SynQuacer/Library/SynQuacerDtbLoaderLib/SynQuacerDtbLoaderLib.c > >> >> | 94 ++++++++++++++++++++ > >> >> > >> >> Silicon/Socionext/SynQuacer/Library/SynQuacerDtbLoaderLib/SynQuacerDtbLoaderLib.inf > >> >> | 42 +++++++++ > >> >> 4 files changed, 141 insertions(+), 6 deletions(-) > >> >> > >> >> diff --git a/Platform/Socionext/DeveloperBox/DeveloperBox.dsc > >> >> b/Platform/Socionext/DeveloperBox/DeveloperBox.dsc > >> >> index 5ec26f9cdd34..80728fedbc20 100644 > >> >> --- a/Platform/Socionext/DeveloperBox/DeveloperBox.dsc > >> >> +++ b/Platform/Socionext/DeveloperBox/DeveloperBox.dsc > >> >> @@ -160,7 +160,8 @@ [LibraryClasses.common.DXE_CORE] > >> >> > >> >> PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf > >> >> > >> >> [LibraryClasses.common.DXE_DRIVER] > >> >> - > >> >> DtPlatformDtbLoaderLib|EmbeddedPkg/Library/DxeDtPlatformDtbLoaderLibDefault/DxeDtPlatformDtbLoaderLibDefault.inf > >> >> + > >> >> DtPlatformDtbLoaderLib|Silicon/Socionext/SynQuacer/Library/SynQuacerDtbLoaderLib/SynQuacerDtbLoaderLib.inf > >> >> + FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf > >> >> > >> >> SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf > >> >> > >> >> PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf > >> >> > >> >> @@ -611,10 +612,7 @@ [Components.common] > >> >> # > >> >> # Console preference selection > >> >> # > >> >> - EmbeddedPkg/Drivers/ConsolePrefDxe/ConsolePrefDxe.inf { > >> >> - <LibraryClasses> > >> >> - FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf > >> >> - } > >> >> + EmbeddedPkg/Drivers/ConsolePrefDxe/ConsolePrefDxe.inf > >> >> > >> >> # > >> >> # DT support > >> >> diff --git > >> >> a/Platform/Socionext/SynQuacerEvalBoard/SynQuacerEvalBoard.dsc > >> >> b/Platform/Socionext/SynQuacerEvalBoard/SynQuacerEvalBoard.dsc > >> >> index bc8ddd452d4b..c71425664bdc 100644 > >> >> --- a/Platform/Socionext/SynQuacerEvalBoard/SynQuacerEvalBoard.dsc > >> >> +++ b/Platform/Socionext/SynQuacerEvalBoard/SynQuacerEvalBoard.dsc > >> >> @@ -159,7 +159,8 @@ [LibraryClasses.common.DXE_CORE] > >> >> > >> >> PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf > >> >> > >> >> [LibraryClasses.common.DXE_DRIVER] > >> >> - > >> >> DtPlatformDtbLoaderLib|EmbeddedPkg/Library/DxeDtPlatformDtbLoaderLibDefault/DxeDtPlatformDtbLoaderLibDefault.inf > >> >> + > >> >> DtPlatformDtbLoaderLib|Silicon/Socionext/SynQuacer/Library/SynQuacerDtbLoaderLib/SynQuacerDtbLoaderLib.inf > >> >> + FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf > >> >> > >> >> SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf > >> >> > >> >> PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf > >> >> > >> >> diff --git > >> >> a/Silicon/Socionext/SynQuacer/Library/SynQuacerDtbLoaderLib/SynQuacerDtbLoaderLib.c > >> >> > >> >> b/Silicon/Socionext/SynQuacer/Library/SynQuacerDtbLoaderLib/SynQuacerDtbLoaderLib.c > >> >> new file mode 100644 > >> >> index 000000000000..a93a6027e64d > >> >> --- /dev/null > >> >> +++ > >> >> b/Silicon/Socionext/SynQuacer/Library/SynQuacerDtbLoaderLib/SynQuacerDtbLoaderLib.c > >> >> @@ -0,0 +1,94 @@ > >> >> +/** @file > >> >> +* > >> >> +* Copyright (c) 2017, Linaro, Ltd. All rights reserved. > >> >> +* > >> >> +* This program and the accompanying materials > >> >> +* are licensed and made available under the terms and conditions of > >> >> the BSD License > >> >> +* which accompanies this distribution. The full text of the license > >> >> may be found at > >> >> +* http://opensource.org/licenses/bsd-license.php > >> >> +* > >> >> +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > >> >> BASIS, > >> >> +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS > >> >> OR IMPLIED. > >> >> +* > >> >> +**/ > >> >> + > >> >> +#include <PiDxe.h> > >> >> + > >> >> +#include <libfdt.h> > >> >> +#include <Library/BaseLib.h> > >> >> +#include <Library/DebugLib.h> > >> >> +#include <Library/DxeServicesLib.h> > >> >> +#include <Library/MemoryAllocationLib.h> > >> >> + > >> >> +#define DTB_PADDING 64 > >> > > >> > If there isn't a simplish way of determining this value > >> > arithmetically, can you add a comment explaining why 64 is sufficient? > >> > > >> > >> Something like > >> > >> // add enough space for two instances of 'status = "disabled"' > >> > >> ? > > > > Good enough for me. > > Reviewed-by: Leif Lindholm <[email protected]> > > > > Thanks. Does that cover the delta patch I added in my own reply?
Yes. Sorry, should have been explicit. _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

