From: "Leif Lindholm" <leif@nuviainc.com>
To: "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 11:15:35 +0100 [thread overview]
Message-ID: <20200507101535.GQ21486@vanye> (raw)
In-Reply-To: <VI1PR04MB59331EC64AD3EB08A1738EBEF1A50@VI1PR04MB5933.eurprd04.prod.outlook.com>
On Thu, May 07, 2020 at 07:28:30 +0000, Pankaj Bansal (OSS) wrote:
> 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
OK, then that -1 needs a separate #define.
> // 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
The example you point to sets Status, overwrites it (once or twice
depending on conditionals), then returns it.
This patch in its current form sets Status, accesses it only in DEBUG
builds and does not return it.
> > 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 ?
ASSERTs are only triggered in DEBUG builds, and send the processor
into WFI.
If it is a critical error (is it critical if you have found some RAM,
but been unable to fully reconcile all of the RAM in the system?), it
should do more than that.
I am all for properly handling that situation, but this patch has
never done that. Feel free to rework before submitting v5, or leave it
until (if) adding ACPI support and report the condition properly
through BERT.
/
Leif
next prev parent reply other threads:[~2020-05-07 10:15 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
2020-05-07 10:15 ` Leif Lindholm [this message]
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=20200507101535.GQ21486@vanye \
--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