public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Pankaj Bansal" <pankaj.bansal@nxp.com>
To: Leif Lindholm <leif@nuviainc.com>,
	"Pankaj Bansal (OSS)" <pankaj.bansal@oss.nxp.com>
Cc: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>,
	Michael D Kinney <michael.d.kinney@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>,
	Varun Sethi <V.Sethi@nxp.com>,
	Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>,
	Jon Nettleton <jon@solid-run.com>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>
Subject: Re: [PATCH edk2-platforms v4 12/24] Silicon/NXP: Move RAM retrieval from SocLib
Date: Thu, 7 May 2020 07:28:30 +0000	[thread overview]
Message-ID: <VI1PR04MB59331EC64AD3EB08A1738EBEF1A50@VI1PR04MB5933.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <20200506104405.GL21486@vanye>

Hi Leif,

> > +  ARM_SMC_ARGS  ArmSmcArgs;
> >
> > -Routine Description:
> > +  ArmSmcArgs.Arg0 = SMC_DRAM_BANK_INFO;
> > +  ArmSmcArgs.Arg1 = -1;
> 
> Should this be SMC_UNK?

No. SMC_OK / SMC_UNK is returned values.
While x0, x1 are arguments.
I have explained this in the MemoryInitPeiLib.h

// This SMC call works in this way:
// x1 = -1 : return x0: SMC_OK, x1: total DDR Ram size
// x1 >= number of DRAM regions to which DDR RAM is mapped : return x0: SMC_UNK
// 0 <= x1 < number of DRAM regions to which DDR RAM is mapped : return
//           x0: SMC_OK, x1: Base address of DRAM region,
//           x2: Size of DRAM region

> 
> >
> > +  ArmCallSmc (&ArmSmcArgs);
> >
> > +  if (ArmSmcArgs.Arg0 == SMC_OK) {
> > +    return ArmSmcArgs.Arg1;
> > +  }
> >

....

> > -      {
> > -        Found = TRUE;
> > -        break;
> > -      }
> > -      NextHob.Raw = GET_NEXT_HOB (NextHob);
> > +  Status = GetDramRegionsInfo (DramRegions, ARRAY_SIZE (DramRegions));
> > +  ASSERT_EFI_ERROR (Status);
> 
> Slightly concerned here because we end up with a variable Status that
> is only *used* in DEBUG builds. That could lead to toolchain warnings.

I don't think this would cause build warnings in RELEASE builds. I have tested it.
Also the Status is frequently being handled in this way in other places in edk2:

https://github.com/tianocore/edk2/blob/master/ArmPlatformPkg/PlatformPei/PlatformPeim.c#L90

> 
> And I was completely serious last time around, I am OK with the return
> value being cast away explicitly. What I meant with that is:
>   (VOID)GetDramRegionsInfo (DramRegions, ARRAY_SIZE (DramRegions));
> 

I agreed with your suggestion to return EFI_BUFFER_TOO_SMALL from GetDramRegionsInfo,
But If we discard the return value it means we are OK with some RAM not being reported to UEFI firmware
and subsequently to OS. Isn't this a critical error ?

> /
>     Leif
> 
> > +
> > +  FdBase = (UINTN)FixedPcdGet64 (PcdFdBaseAddress);
> > +  FdTop = FdBase + (UINTN)FixedPcdGet32 (PcdFdSize);
> > +
> > +  // Declare memory regions to system

  reply	other threads:[~2020-05-07  7:28 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-01  5:49 [PATCH edk2-platforms v4 00/24] Add PEI phase to LS1043ARDB Platform Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 01/24] Silicon/NXP: Add I2c lib Pankaj Bansal
2020-05-05 15:11   ` Leif Lindholm
2020-05-01  5:49 ` [PATCH edk2-platforms v4 02/24] Silicon/NXP: changes to use I2clib in i2cdxe Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 03/24] Silicon/NXP/I2cDxe: Fix I2c Timeout with RTC Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 04/24] Silicon/Maxim: Fix bug in RtcWrite in Ds1307RtcLib Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 05/24] Silicon/Maxim: Add comments " Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 06/24] NXP/LS1043aRdb: Move Soc specific components to soc files Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 07/24] Silicon/NXP: remove print information from Soc lib Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 08/24] Silicon/NXP: remove not needed components Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 09/24] Silicon/NXP: Remove unnecessary PCDs Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 10/24] Silicon/NXP: Move dsc file Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 11/24] Platform/NXP: rename the ArmPlatformLib as per ArmPlatformPkg Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 12/24] Silicon/NXP: Move RAM retrieval from SocLib Pankaj Bansal
2020-05-06 10:44   ` Leif Lindholm
2020-05-07  7:28     ` Pankaj Bansal [this message]
2020-05-07 10:15       ` Leif Lindholm
2020-05-08  5:31         ` Pankaj Bansal
2020-05-11 10:27           ` Leif Lindholm
2020-05-01  5:49 ` [PATCH edk2-platforms v4 13/24] Platform/NXP/LS1043aRdbPkg: Add Clock retrieval APIs Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 14/24] Silicon/NXP: Use Clock retrieval PPI in modules Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 15/24] Silicon: NXP: Remove direct calls to SwapMmio* APIs Pankaj Bansal
2020-05-06 10:48   ` Leif Lindholm
2020-05-01  5:49 ` [PATCH edk2-platforms v4 16/24] Silicon/NXP: Add Chassis2 Package Pankaj Bansal
2020-05-06 10:52   ` Leif Lindholm
2020-05-01  5:49 ` [PATCH edk2-platforms v4 17/24] Silicon/NXP/LS1043A: Use ChassisLib from Chassis2 Pkg Pankaj Bansal
2020-05-06 10:54   ` Leif Lindholm
2020-05-01  5:49 ` [PATCH edk2-platforms v4 18/24] Silicon/NXP/LS1043A: Move SocLib to Soc Package Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 19/24] NXP/LS1043aRdbPkg/ArmPlatformLib: Remove extern SocInit Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 20/24] NXP: LS1043aRdbPkg: Use ArmPlatformHelper.S from ArmPlatformPkg Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 21/24] Platform/NXP: Use FV rules from ArmVirtPkg Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 22/24] Platform/NXP/LS1043aRdbPkg: Add VarStore Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 23/24] Silicon/NXP: move MemoryInitPeiLib as per PEIM structures Pankaj Bansal
2020-05-01  5:49 ` [PATCH edk2-platforms v4 24/24] Platform/NXP/LS1043aRdbPkg: Add PEI Phase Pankaj Bansal
2020-05-06 10:57   ` Leif Lindholm

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=VI1PR04MB59331EC64AD3EB08A1738EBEF1A50@VI1PR04MB5933.eurprd04.prod.outlook.com \
    --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