public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Leif Lindholm <leif.lindholm@linaro.org>
To: Alexei Fedorov <Alexei.Fedorov@arm.com>
Cc: "edk2-devel@lists.01.org" <edk2-devel@lists.01.org>,
	"ard.biesheuvel@linaro.org" <ard.biesheuvel@linaro.org>,
	Evan Lloyd <Evan.Lloyd@arm.com>,
	Sami Mujawar <Sami.Mujawar@arm.com>,
	Girish Pathak <Girish.Pathak@arm.com>,
	Mitch Ishihara <Mitch.Ishihara@arm.com>,
	Matteo Carlini <Matteo.Carlini@arm.com>
Subject: Re: [PATCH edk2-platforms 1/3] Platform/ARM: drop unused EmbeddedPkg Pcds
Date: Thu, 8 Feb 2018 17:45:36 +0000	[thread overview]
Message-ID: <20180208174536.fz3teftgsvk7m35h@bivouac.eciton.net> (raw)
In-Reply-To: <DB5PR08MB101492DF204071C97F9451A09AF30@DB5PR08MB1014.eurprd08.prod.outlook.com>

On Thu, Feb 08, 2018 at 03:08:19PM +0000, Alexei Fedorov wrote:
> This patch causes Juno and other ARM platforms to raise an assert during MMU initialisation in ArmConfigureMmu()

Huh...

> (edk2\ArmPkg\Library\ArmMmuLib\AArch64\ArmMmuLibCore.c):
> 
> 
>   ASSERT (TranslationTableAttribute == ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK ||
>           TranslationTableAttribute == ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK);
> 
> 
> see debug output:
>
> UEFI firmware (version  built at 12:01:21 on Feb  8 2018)
> add-symbol-file n:\edk2\Build\ArmJuno\DEBUG_GCC5\AARCH64\ArmPlatformPkg\PrePi\PeiUniCore\DEBUG\ArmPlatformPrePiUniCore.dll 0xE0000800
> ASSERT [ArmPlatformPrePiUniCore] n:\edk2\ArmPkg\Library\ArmMmuLib\AArch64\ArmMmuLibCore.c(744): TranslationTableAttribute == ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK || TranslationTableAttribute == ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK
> 
> because removal of
> -  gEmbeddedTokenSpaceGuid.PcdCacheEnable|TRUE
> from ArmVExpress.dsc.inc now makes ArmPlatformGetVirtualMemoryMap () function in
> \edk2-platforms\Platform\ARM\JunoPkg\Library\ArmJunoLib\ArmJunoMem.c
> 
> use default FALSE value defined in EmbeddedPkg.dec:
> 
> 
> [PcdsFeatureFlag.common]
>   gEmbeddedTokenSpaceGuid.PcdCacheEnable|FALSE|BOOLEAN|0x00000042
> 
> 
> & set CacheAttributes to DDR_ATTRIBUTES_UNCACHED:
> 
> if (FeaturePcdGet(PcdCacheEnable) == TRUE) {
>     CacheAttributes = DDR_ATTRIBUTES_CACHED;
>   } else {
>     CacheAttributes = DDR_ATTRIBUTES_UNCACHED;
>   }

So. I spent a while scratching my head here over how i didn't spot
this when I did my final test build before generating the patches.

Turns out, somewhere amongst my rebasing,
gEmbeddedTokenSpaceGuid.PcdCacheEnable managed to reintroduce itself
into EmbeddedPkg.dec (I explicitly deleted it).

Since I _knew_ I'd deleted it, and all the platforms still built, I
didn't bother grepping for it through all of edk2-platforms.

Ho hum.

Well, the fix is trivial - just excise it from all platforms, and turn
all conditional statements into the unconditional execution of the
TRUE path. There is no code in public trees that actually does
anything different initialisation-wise depending on the value of this
Pcd.

Scream if you disagree.

> Thank you for your cooperation.

Thanks for reporting!

/
    Leif

> Alexei.
> 
> ________________________________
> From: edk2-devel <edk2-devel-bounces@lists.01.org> on behalf of Leif Lindholm <leif.lindholm@linaro.org>
> Sent: 06 February 2018 17:12
> To: edk2-devel@lists.01.org
> Cc: ard.biesheuvel@linaro.org
> Subject: [edk2] [PATCH edk2-platforms 1/3] Platform/ARM: drop unused EmbeddedPkg Pcds
> 
> A set of mostly Ebl-related Pcds are about to be deleted from
> edk2. Delete references to them here to keep platforms building.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
> ---
>  Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc | 18 ------------------
>  1 file changed, 18 deletions(-)
> 
> diff --git a/Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc b/Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc
> index 717f7332c9..b026ce3a42 100644
> --- a/Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc
> +++ b/Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc
> @@ -257,20 +257,6 @@ [PcdsFeatureFlag.common]
>    gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
>    gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
> 
> -  #
> -  # Control what commands are supported from the UI
> -  # Turn these on and off to add features or save size
> -  #
> -  gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|TRUE
> -  gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd|TRUE
> -  gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd|TRUE
> -  gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd|TRUE
> -  gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd|TRUE
> -  gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable|FALSE
> -  gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd|FALSE
> -
> -  gEmbeddedTokenSpaceGuid.PcdCacheEnable|TRUE
> -
>    # Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
>    gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
> 
> @@ -333,10 +319,6 @@ [PcdsFixedAtBuild.common]
> 
>    gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
> 
> -  gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand|""
> -  gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor|0x07
> -  gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize|0x10000
> -
>    #
>    # Optional feature to help prevent EFI memory map fragments
>    # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
> --
> 2.11.0
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
> IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


  reply	other threads:[~2018-02-08 17:39 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-06 17:12 [PATCH edk2-platforms 1/3] Platform/ARM: drop unused EmbeddedPkg Pcds Leif Lindholm
2018-02-06 17:12 ` [PATCH edk2-platforms 2/3] <Platform|Silicon>/Hisilicon: " Leif Lindholm
2018-02-06 17:12 ` [PATCH edk2-platforms 3/3] Silicon/Marvell: " Leif Lindholm
2018-02-06 17:24   ` Ard Biesheuvel
2018-02-06 18:05     ` Leif Lindholm
2018-02-08 15:08 ` [PATCH edk2-platforms 1/3] Platform/ARM: " Alexei Fedorov
2018-02-08 17:45   ` Leif Lindholm [this message]
2018-02-08 17:57     ` Ard Biesheuvel

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=20180208174536.fz3teftgsvk7m35h@bivouac.eciton.net \
    --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